Information processing apparatus including storage

ABSTRACT

The present invention relates to an information apparatus and method suitable for use in upgrading control programs readily by a user. In step S 501 , a storage area to store an upgraded firmware is determined. In step S 502 , the upgraded firmware is provided. In step  503 , the provided firmware is decrypted and re-encrypted. In step S 504 , re-encrypted firmware is written into the storage area determined in step S 501 . In step S 505 , a maximum marker is detected. In step S 506 , a value obtained by adding 1 to the maximum marker provides the marker corresponding to the storage area in which the firmware was stored in step S 504 . The present invention is applicable to, for example, an audio data server.

TECHNICAL FIELD

The present invention relates to an information processing apparatus andmethod and, more particularly, to an information apparatus and methodsuitable for use in upgrading prepared control programs.

BACKGROUND ART

Information processing apparatuses are known in which various processesare executed in accordance with a control program.

However, conventional information processing apparatuses are not adaptedto allow users themselves to upgrade (rewrite) control programs.

To be more specific, if users of earlier-version apparatuses want to usethe functions of newly developed control programs, the user musteventually purchase the apparatuses installed with the newly developedcontrol programs.

In addition, because the users cannot upgrade control programs, ifcontrol programs have bugs or the like, the manufacturers of theaffected information processing apparatuses must recall them for therewriting of the control programs.

Namely, the manufacturers of these information processing apparatusesmust use time and labor for apparatus recall and control programrewriting and be extremely careful in fixing the bugs, which requires agreat deal of time for control program development.

DISCLOSURE OF INVENTION

It is therefore an object of the present invention to provide anapparatus that allows users to upgrade control programs with ease.

The first information processing apparatus according to the presentinvention is characterized in that it includes:

detection means for detecting either one of two or more storage areaseach storing a program, the one storage area having the oldest updateinformation, or a storage area storing no program; and

storage means for storing another program into the storage area detectedby the first detection means.

The first information processing apparatus according to the presentinvention may further include:

second detection means for detecting one of the programs that has mostrecent update information in a predetermined timed relation; and

instruction means for instructing the execution of the program detectedby the second detection means.

The predetermined timed relation may be immediately after a power-onsequence.

The storage areas are arranged in a first information storage medium,and the instruction means may load the program detected by the seconddetection means into a second information storage medium and then mayexecute the loaded program.

The first information storage medium may be a flash RAM and the secondinformation storage medium may be a synchronous DRAM.

The first information processing apparatus according to the presentinvention may further include:

decryption/encryption means for decrypting the encrypted another programand encrypting the decrypted another program again, and the instructionmeans may decrypt the encrypted program detected by the second detectionmeans, may load the decrypted program into the second informationstorage medium, and then may instruct the execution of the loadedprogram.

The another program is updated one of the programs, and may furtherinclude input means for inputting the updated program.

The first information processing method according to the presentinvention is characterized in that it includes:

a detection step for detecting either one of two or more storage areaseach storing a program, the one storage region storage area having theoldest update information, or a storage area storing no program; and

a storage step for storing another program into the storage areadetected by the first detection step.

The first program of the storage medium according to the presentinvention is characterized in that it includes:

a detection step for detecting either one of two or more storage areaseach storing a program, the one storage region storage area having theoldest update information, or a storage area storing no program; and

a storage step for storing another program into the storage areadetected by the first detection step.

The first program according to the present invention is characterized inthat it causes a computer to execute:

a detection step for detecting either one of two or more storage areaseach storing a program, the one storage region storage area having theoldest update information, or a storage area storing no program; and

a storage step for storing another program into the storage areadetected by the first detection step.

The second information processing apparatus according to the presentinvention is characterized in that it includes:

a first information storage medium having a control program forcontrolling the entire apparatus, a load program for reading the controlprogram and loading the control program into another information storagemedium, an execution instruction program for instructing the executionof the loaded program, update information indicative of an updatesituation of an area in which programs are stored, a read program forreading a program from an external information storage medium, and awrite program for writing the program read by the read program into theprogram storing area;

a second information storage medium for storing the program loaded bythe load program; and

a controller for performing control such that the load program loads,when power is turned on, a part of the program into the secondinformation storage medium in accordance with update information storedin the first information storage medium, the execution instructionprogram executes the loaded control program, the read program loaded inthe second information storage medium reads a program from an externalinformation storage medium in response to a user request during theexecution of the control program, and the write program loaded in thesecond information storage medium writes the program read by the readprogram into the first information storage medium.

The first information storage medium has a first area and a second area,and the first area may have at least the load program for reading aprogram stored in the second area and loading this program into thesecond information storage medium, the execution instruction program,and update information indicative of an update situation of the secondarea and the second area may have at least the read program, the writeprogram, and the control program.

The controller, when power is turned on, may perform control such thatthe update information stored in the first area of the first informationstorage medium for most recent update information is searched, and theload program loads the program corresponding to the searched area intothe second information storage medium, and the execution instructionprogram executes the loaded control program.

The controller, in response to a user request, may search the updateinformation stored in the first information storage medium for theoldest update information or update information indicative that the areais still free, may read a program from an external information storagemedium as executed by the read program loaded in the second informationstorage medium, may write the program as executed by the write programloaded in the second information storage medium into a predeterminedarea, corresponding to the retrieved update information, in the firstinformation storage medium, and may rewrite the update informationcorresponding to the predetermined area to most recent updateinformation.

The first area may have at least a first read program for reading anencrypted program from an external information storage medium andinstructing the decryption thereof, the load program for reading anencrypted program in the second area from the first information storagemedium, instructing the decryption thereof, and loading the decryptedprogram in the second information storage medium, the executioninstruction program, and update information indicative of updatesituations of all areas subsequent to the second area, and the secondarea may have at least a second read program for reading an encryptedprogram from an external information storage medium and instructing thedecryption thereof, the write program for encrypting again the programread and decrypted by the second read program and writing the encryptedprogram to the second area, and an encrypted control program forcontrolling the entire apparatus.

The controller, in response to a user request, may search the updateinformation in the first information storage medium for the oldestupdate information or update information indicative that the area isstill free, may read an encrypted program from an external informationstorage medium and instructs the decryption thereof as executed by theread program loaded in the second information storage medium, mayencrypt again the decrypted program and writes the encrypted program toa predetermined area corresponding to the retrieved update information,in the first information storage medium as executed by the write programloaded in the second information storage medium, and may rewrite theupdate information corresponding to the predetermined area to mostrecent update information.

The second information processing method according to the presentinvention is characterized in that it includes the steps of:

when power is turned on, loading, by the load program, a part of theprogram into the second information storage medium in accordance withupdate information stored in the first information storage medium,executing the loaded control program by the execution instructionprogram, and

in response to a user request during the execution of the controlprogram, reading a program from an external information storage mediumas executed by the read program loaded in the second information storagemedium, and

writing the program read by the read program to the first informationstorage medium as executed by the write program loaded in the secondinformation storage medium.

The second program of the storage medium according to the presentinvention is characterized in that it includes the steps of:

when power is turned on, loading, by the load program, a part of theprogram into the second information storage medium in accordance withupdate information stored in the first information storage medium,executing the loaded control program by the execution instructionprogram, and

in response to a user request during the execution of the controlprogram, reading a program from an external information storage mediumas executed by the read program loaded in the second information storagemedium, and

writing the program read by the read program to the first informationstorage medium as executed by the write program loaded in the secondinformation storage medium.

The second program according to the present invention is characterizedin that it causes a computer to execute the steps of:

when power is turned on, loading, by the load program, a part of theprogram into the second information storage medium in accordance withupdate information stored in the first information storage medium,executing the loaded control program by the execution instructionprogram, and

in response to a user request during the execution of the controlprogram, reading a program from an external information storage mediumas executed by the read program loaded in the second information storagemedium, and

writing the program read by the read program to the first informationstorage medium as executed by the write program loaded in the secondinformation storage medium.

In the first information processing apparatus according to the presentinvention, either one of two or more storage areas each storing aprogram, the one storage area having the oldest update information, or astorage area storing no program is detected, and

another program is stored into the storage area detected by the firstdetection means.

In the second information processing apparatus according to the presentinvention, the load program loads, when power is turned on, a part ofthe program into the second information storage medium in accordancewith update information stored in the first information storage medium,the execution instruction program executes the loaded control program,the read program loaded in the second information storage medium reads aprogram from an external information storage medium in response to auser request during the execution of the control program, and the writeprogram loaded in the second information storage medium writes theprogram read by the read program into the first information storagemedium.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic diagram illustrating an overview of an audioserver 1 practiced as one embodiment of the invention.

FIG. 2 is an external view of the audio server 1.

FIG. 3 is a top view of the audio server 1.

FIG. 4 is a rear view of the audio server 1.

FIG. 5 is an elevational view of the audio server 1.

FIG. 6 is a block diagram illustrating an exemplary hardwareconfiguration of the audio server 1.

FIG. 7 is a diagram illustrating firmware which is executed by the audioserver 1.

FIG. 8 is a diagram illustrating a FAT file system (data format) appliedto a HDD 58.

FIG. 9 is a diagram illustrating a logical structure of a file recordingarea 121.

FIG. 10 is a diagram illustrating a configuration of a FAT 141.

FIG. 11 is a diagram illustrating one example of the FAT 141.

FIG. 12 is a diagram illustrating an exemplary record of a filerecording area 121.

FIG. 13 is a diagram illustrating a structure of a size recording area151.

FIG. 14 is a flowchart describing a file creating process.

FIG. 15 is a flowchart describing a free cluster retrieving process.

FIG. 16 is a flowchart describing FAT entry reading process.

FIG. 17 is a flowchart describing a linking process.

FIG. 18 is a flowchart describing a file X reading process.

FIG. 19 is a flowchart describing a file X searching process.

FIG. 20 is a flowchart describing a file X reverse reading process.

FIG. 21 is a diagram illustrating a logical structure of an objectrecording area 122.

FIG. 22 is a diagram illustrating a structure of an object typerecording area 163.

FIG. 23 is a diagram illustrating an area information recording area164.

FIG. 24 is a diagram illustrating an object managing block 124.

FIG. 25 is a diagram illustrating a session managing information 181.

FIG. 26A is a diagram illustrating a basic object type 1.

FIG. 26B is a diagram illustrating a basic object type 2.

FIG. 27 is a diagram illustrating a structure an object identifier.

FIG. 28 is a flowchart describing an object creating process.

FIG. 29 is a flowchart describing a session opening process.

FIG. 30 is a flowchart describing a free entry allocating process.

FIG. 31 is a flowchart describing a write session establishing process.

FIG. 32 is a flowchart describing a session discarding process.

FIG. 33 is a flowchart describing an object searching process.

FIG. 34 is a flowchart describing an entry retrieving process.

FIG. 35 is a flowchart describing an object updating process.

FIG. 36 is a flowchart describing a stream object creating process.

FIG. 37 is a flowchart describing a stream object searching process.

FIG. 38 is a diagram illustrating an object directory structure.

FIG. 39 is a diagram illustrating a folder list object format.

FIG. 40 is a diagram illustrating a folder object format.

FIG. 41 is a diagram illustrating an album object format.

FIG. 42 is a diagram illustrating a track object format.

FIG. 43 is a diagram illustrating details of AC of a track object.

FIG. 44 is a diagram illustrating a content data format.

FIG. 45 is a diagram illustrating a CC object format.

FIG. 46 is a diagram illustrating a CC data format.

FIG. 47 is a diagram illustrating a data flow at a time when CD rippingis executed.

FIG. 48 is a diagram illustrating a data flow at a time when CDrecording is executed.

FIG. 49 is a diagram illustrating a data flow at a time when HDrecording for digital input is executed.

FIG. 50 is a diagram illustrating a data flow at a time when HDrecording for analog input is executed.

FIG. 51 is a diagram illustrating a data flow at a time when HD play isexecuted.

FIG. 52 is a diagram illustrating a data flow at a time when CD play isexecuted.

FIG. 53A is a diagram illustrating a data flow at a time when MS play isexecuted.

FIG. 53B is a diagram illustrating a data flow at a time when MS play isexecuted.

FIG. 54 is a diagram illustrating a data flow at a time when MScheck-out/move-out is executed.

FIG. 55 is a diagram illustrating a data flow at a time when MSimport/move-in is executed.

FIG. 56 is a diagram illustrating a data flow at a time when a PDcheck-out is executed.

FIG. 57 is a diagram illustrating CD ripping.

FIG. 58 is a diagram illustrating CD recording.

FIG. 59 is a diagram illustrating the partitioning of a buffer 56 in CDripping or CD recording.

FIG. 60 is a diagram illustrating buffer transition states.

FIG. 61 is a diagram illustrating a ring buffer 241 arranged in a HDD58.

FIG. 62 is a diagram illustrating a data flow between buffers at thetime of CD ripping.

FIG. 63 is a flowchart describing a recording speed setting process.

FIG. 64 is a flowchart describing a CD recording process.

FIG. 65 is a flowchart describing a ring buffer information initializingprocess.

FIG. 66 is a flowchart describing a recording process for one piece ofmusic.

FIG. 67 is a flowchart describing a monitor sound outputting process.

FIG. 68 is a flowchart describing a ring buffer writing process.

FIG. 69 is a flowchart describing a ring buffer reading process.

FIG. 70A is a diagram illustrating an exemplary display on a display 15at a time when music to be recorded is set.

FIG. 70B is a diagram illustrating an exemplary display on the display15 when recording is on.

FIG. 71 is a diagram illustrating the setting of a playback area.

FIG. 72 is a diagram illustrating an exemplary play list.

FIG. 73 is a diagram illustrating another exemplary play list.

FIG. 74 is a diagram illustrating still another exemplary play list.

FIG. 75 is a diagram illustrating yet another exemplary play list.

FIG. 76 is a flowchart describing a play list creating process.

FIG. 77 is a flowchart describing an all music repeat playback process.

FIG. 78 is a flowchart describing a move-out process.

FIG. 79 is a diagram illustrating a move-out processing statetransition.

FIG. 80 is a diagram illustrating an exemplary display on the display 15at the time of a move-out process.

FIG. 81 is a diagram illustrating an exemplary display on the display 15at the time of a move-out process.

FIG. 82 is a flowchart describing a move-in process.

FIG. 83 is a diagram illustrating a move-in process state transition.

FIG. 84 is a diagram illustrating an exemplary display on the display 15at the time of a move-in process.

FIG. 85 is a diagram illustrating another exemplary display on thedisplay 15 at the time of a move-in process.

FIG. 86 is a flowchart describing a restore process.

FIG. 87 is a flowchart describing a move-out restore process.

FIG. 88 is a flowchart describing a move-in restore process.

FIG. 89 is a flowchart describing a check-out process.

FIG. 90 is a diagram illustrating an exemplary display on the display 15at the time of a check-out process.

FIG. 91 is a diagram illustrating another exemplary display on thedisplay 15 at the time of a check-out process.

FIG. 92 is a flowchart describing a check-in process.

FIG. 93 is a diagram illustrating an exemplary display on the display 15at the time of a check-in process.

FIG. 94 is a flowchart describing an exchanging process.

FIG. 95 is a diagram illustrating an exemplary display on the display 15at the time of an exchanging process.

FIG. 96 is a diagram illustrating another exemplary display on thedisplay 15 at the time of an exchanging process.

FIG. 97 is a diagram illustrating still another exemplary display on thedisplay 15 at the time of an exchanging process.

FIG. 98 is a block diagram illustrating an exemplary hardwareconfiguration of a PD 5.

FIG. 99 is a diagram illustrating the types of directories and filesrecorded on an MS 4.

FIG. 100 is a diagram illustrating archive file recording positions.

FIG. 101 is a flowchart describing storing process.

FIG. 102 is a diagram illustrating an exemplary display on the display15 at the time of a storing process.

FIG. 103 is a diagram illustrating another exemplary display on thedisplay 15 at the time of a storing process.

FIG. 104 is a diagram illustrating still another exemplary display onthe display 15 at the time of a storing process.

FIG. 105 is a flowchart describing a restoring process.

FIG. 106 is a diagram illustrating an exemplary display on the display15 at the time of restoring process.

FIG. 107 is a diagram illustrating another exemplary display on thedisplay 15 at the time of restore process.

FIG. 108 is a diagram illustrating an area configuration of a flash ROMshown in FIG. 6.

FIG. 109 is a flowchart describing a program rewriting process.

FIG. 110 is a flowchart describing a boot program process.

BEST MODE FOR CARRYING OUT THE INVENTION

Now, with reference to FIG. 1, an audio server practiced as oneembodiment of the invention will be outlined below. An audio server 1reads PCM (Pulse Code Modulation) data from a music CD 3, encodes thePCM data based on the ATRAC (Adaptive Transform Acoustic Coding) 3technique, records the encoded data to a hard disk drive 58 (FIG. 6),and manages the recorded encoded data by relating them with hierarchicalobjects such as, from the higher layer, folder list, folder, album, andtrack.

The folder list can include a plurality of folders at a layer one stepbelow. Each folder can include a plurality of albums at a layer one stepbelow. Each album can include a plurality of tracks at a layer one stepbelow. Each track located at the bottom layer of this hierarchicalstructure corresponds to the encoded data for one piece of music, one toone.

In what follows, encoded data are also referred to as content data. Eachof the folder list, folders, albums, and tracks is also referred to asan object. Each user specifies any of these objects and issues a varietyof commands to the specified objects. It should be noted that thedetails of the hierarchical structure of the objects will be describedlater with reference to FIG. 38.

The audio server 1 also plays back the music CD 3 or decodes the encodeddata recorded to the hard disk drive (hereafter referred to as an HDD)58 to output obtained audio signals from a speaker 2.

In addition, the audio server 1 records the encoded data recorded to theHDD 58 to a Memory Stick (trademark) (hereafter referred to as an MS 4)compatible with the Magic Gate (trademark) loaded in an MS slot 45 (FIG.5) or a portable device (hereafter referred to as a PD) 5 such as theNetwork Walkman (trademark) connected to a connector 43 (FIG. 5) by acheck-out or check-in process and, at the same time, records the encodeddata recorded to the MS 4 or the PD 5 to the HDD 58 by a check-in orcheck-out process or an import process.

The Magic Gate is a data copyright protection technology based on twotechnologies of encrypting data to be recorded to the MS 4 compatiblewith the Magic Gate and cross-certifying the audio server 1 on which MS4 is loaded, thereby preventing digital audio data from being copied,played back, and tampered in an unauthorized manner. The Magic Gate iscompliant with the SDMI (Secure Digital Music Initiative) standard.

It should be noted that a check-out process, a check-in process, amove-out process, a move-in process, and an import process to beexecuted between the audio server 1 and the MS 4 or the PD 5 will bedescribed later.

The MS 4 recorded with encoded data is detached from the audio server 1and loaded, for example, in a personal computer 6, upon which therecorded encoded data are read to be decoded.

The PD 5 recorded with encoded data decodes them and outputs resultantaudio signal from a headphone.

A remote controller 7 receives an operation signal from the user andtransmits a corresponding control signal to the audio server 1.

The following describes an external view of the audio server 1 withreference to FIGS. 2 through 5. FIG. 2 is an elevational view of theaudio server 1. FIG. 3 is a top view of the audio server 1. FIG. 4 is arear view of the audio server 1. FIG. 5 is a top view.

On top of the audio server 1, a cover 40 of a CD tray (not shown) onwhich a CD is loaded is provided. As shown in FIG. 3, the cover 40 isarranged with buttons such as a power button 11 and a display 15 fordisplaying various kinds of information. The power (POWER) button 11 isoperated to turn on/off the power to the audio server 1. A function(FUNCTION) button 12 is operated to select, as a source, one of themusic CD 3, HDD 58, an AUX IN terminal 31, the MS 4, and the PD 5.

A play mode (PLAY MODE) button 13 is operated to switch the playbackmode to normal playback in which all tracks included in a playback areaare played back each once sequentially, all-music repeat in which alltracks included in the playback area are repetitively sequentiallyplayed back, single-music repeat in which only one track is repetitivelyplayed back, random repeat in which random selection is performed on alltracks included in the playback area and the selected tracks arerepetitively played back at random, or slot machine playback in which ananimation indicative of random section of all tracks included in theentire HDD is displayed and the selected tracks are repetitivelyselected. The playback area will be described later with reference toFIG. 71.

A display (DISPLAY) button 14 is operated to switch between the displaycontents of the display 15. The display 15, which is constituted by anLCD (Liquid Crystal Display) for example, displays operationalsituations and information associated with audio data.

A volume (VOLUME) button 16 is operated to increase or decrease thevolume to be outputted. A cursor button 17 is operated to move thecursor displayed on the display 15. A select (SELECT) button 18 isoperated to select an object displayed on the display 15 or switchbetween ascending order and descending order in a search operation. Anerase (ELASE) button 19 is operated to erase an object such as a track.

An enter (ENTER) button 20 is operated to determine a displayed menu oran object such as a selected track. A menu/cancel (MENU/CANCEL) button21 is operated to display various operator menus hierarchically arrangedor cancel the display. An exchange (EXCHANGE) button 22 is operated toautomatically perform check-in process or check-out process on the MS 4or the PD 5.

A record (RECORD) button 23 is operated to record the audio data in themusic CD 3 to the HDD 58 while playing them. A high-speed record (HISPEED RECORD) button 24 is operated to record the audio data in themusic CD 3 to the HDD 58 in a high-speed record mode. It should be notedthat, in this high-speed record mode, the audio data to be recorded areaudibly outputted from the speaker 2 for example.

A stop button 25 is operated to stop an on-going play or recordingoperation. A play/pause button 26 is operated to start playback, pauseplayback, or clear pause of playback. A cue button 27 is operated to cueto a current track or any of preceding tracks or cause rewind and play.A cue button 28 is operated to cue to a next track or cause fast forwardand playback.

It should be noted that, although not shown, the remote controller 7 hasbuttons which are functionally equivalent to the buttons such as thepower button 11 disposed on the cover 40.

On the rear side of the audio server 1, the AUX In terminal 31, a LineOut terminal 32, a sub woofer terminal 33, a speaker (L, R) terminal 34,a reset button 35, and a DC In terminal 36 are disposed.

The AUX In terminal 31 can connect the audio server 1 to audio outputequipment (not shown) and input the digital audio data or analog soundsignal from the connected audio output equipment into the audio server1. The Line Out terminal 32 can connect the audio server 1 to anamplifier (not shown) for example and output analog sound signals to theconnected amplifier. The sub woofer terminal 33 can connect the audioserver 1 to a sub woofer (not shown) and output the low frequencycomponent of a reproduced sound signal to the connected sub woofer. Thespeaker (L, R) terminal 34 can connect the audio server 1 to the speaker2 and output reproduced sound signals therefrom. The reset button 35 isoperated to reset the audio server 1. To the DC In terminal 36, the DCpower is supplied from an AC power adaptor (not shown).

On the front of the audio server 1, an open lever 41, a photoreceptor42, the connector 43, an access light 44, the MS slot 45, an eject lever46, and a headphone terminal 47 are disposed as shown in FIG. 5. Theopen lever 41 is slid to open the cover 40. The photoreceptor 42receives control signals transmitted from the remote controller 7. Theconnector 43 has a USB (Universal Serial Bus) terminal to which the PD5, an external HDD, or a keyboard for example may be connected by use ofa USB cable.

It should be noted that the connector 43 may have an IEEE 1394 terminalto which the PD 5 for example may be connected by use of an IEEE 1394cable. Alternatively, a connector compliant with Bluetooth (trademark)or IEEE 802.11b (so-called wireless LAN) may be provided to connect thePD 5 for example in a wireless manner.

The access light 44 blinks when a data read/write operation is beingexecuted on the MS 4 loaded in the MS slot 45 or the PD 5 connected tothe connector 43 for example. The MS slot 45 is loaded with the MS 4.The eject lever 46 is operated to eject the MS 4 from the MS slot 45.The headphone 47 is connected to a headphone and output reproduced soundsignals therefrom.

The following describes an exemplary hardware configuration of the audioserver 1 with reference to FIG. 6. The audio server 1 incorporates amain CPU (Central Processing Unit) 51 which controls the audio server 1in its entirety. The main CPU 51 is connected to a flash ROM 52, anSDRAM 53, a USB host controller 54, a DMA controller 55, a signalprocessor 60, an Ethernet (trademark) controller/connector 67, and aPCMCIA controller 68 via a bus line 66.

When flash ROM 52 stores a device ID and an encryption key in additionto an RTOS (Real Time Operating System) 71 (FIG. 7) of which starting iscompleted by the CPU 51 as soon as the power is turned on and thefirmware (to be described later with reference to FIG. 7) which isexecuted on the RTOS 71 for implementing a variety of functions.

The SDRAM (Synchronous Dynamic Random Access Memory) 53 temporarilystores predetermined data and programs when the main CPU 51 executes avariety of processes. The USB host controller 54 controls the datacommunication with the PD 5 for example connected via the connector 43.

The DMA (Direct Memory Access) controller 55 controls the data transferbetween the HDD 58 a buffer 56, a CD-ROM drive 57 and an encoder/decoder59. The buffer 56 based on SDRAM for example temporarily buffers thedata of which transfer is controlled by the DMA controller 55. TheCD-ROM drive 57 reads audio data from the music CD 3 at the speed ofCAV8. The HDD 58 stores the encoded data generated by theencoder/decoder 59.

The encoder/decoder 59 encodes the PCM data read by the CD-ROM drive 57or the audio data inputted from the AUX In terminal 31 at a maximumspeed of 8× and an average speed of 5× by use of the ATRAC3 technique of132 Kbps mode, 105 Kbps mode, or 66 Kbps mode, thereby generatingencoded data. Also, the encoder/decoder 59 decodes the encoded datastored in the HDD 58. In addition, the encoder/decoder 59 has the DES(Data Encryption Standard) engine to encrypt the encoded data by use ofan encryption key to be generated on the basis of the device ID of apredetermined component of the audio server 1 and a time.

For example, if the HDD 58 has a storage capacity of 9 gigabytes and theencoder/decoder 59 encodes by the ATRAC3 technique of 105 Kbps mode,about 100 music CDs 3 (60 minutes/disc) may be recorded to the HDD 58.

The signal processor 60 is composed of a Magic Gate Memory Stickinterface (hereafter referred to as an MGMS I/F) 60-1, a watermarkscreen (hereafter referred to as a WM screen) 60-2, an audio I/F 60-3,and a sampling rate converter (hereafter referred to as an SRC) 60-4.

The MGMS I/F 60-1 cross-certificates the MS 4 loaded in the MS slot 45via an MS connector 61 and accordingly encrypts the data and decryptsthe encrypted data. The WM screen 60-2 detects an SDMI-compliantwatermark (an electronic watermark or the information indicative of thepermission or inhibition of copy) embedded in the audio data that passthe signal processor 60.

The audio I/F 60-3 gets digital audio data via the AUX In terminal 31and supplies the obtained data to the SRC 60-4. Also, the audiointerface 60-3 appropriately buffers the digital audio data transferredfrom the buffer 56 for example into an incorporated buffer 251 (FIG. 62)and then outputs the buffered data to an AD/DA 62.

The SRC 60-4 converts the sampling rate of the digital audio data fromthe audio I/O 60-3 into 44.1 KHz and outputs the resultant digital audiodata to the encoder/decoder 59.

It should be noted that, although not shown, the signal processor 60also incorporates an ATRAC3 encoder/decoder which operates at a speed of1×.

The MS connector 61 relays the data communication between the MS 4inserted therein and the MGMS I/F 60-1. The AD/DA 62 converts thedigital audio data inputted from the audio I/F 60-3 of the signalprocessor 60 into an analog sound signal and outputs it to the Line Outterminal 32, the speaker terminal 34, or the headphone terminal 47. TheAD/DA 62 also digitize the analog sound signal inputted from the AUX Interminal 31 to output a resultant digital signal to the encoder/decoder59.

The Ethernet controller/connector 67 controls the data communicationwith other electronic equipment connected via Ethernet (trademark). ThePCMCIA (Personal Computer Memory Card International Association)controller 68 has an IC card interface compliant with the PCMCIAstandard.

The main CPU 51 is connected to a display driver 63 and a sub CPU 64.The display driver 63 controls a display operation performed on thedisplay 15. The sub CPU 64 controls, especially when the power is off, apower supply section 65, controls a main frame reset operation, countsan incorporated clock, detects an operation performed on the powerbutton 11 for example, controls the photoreceptor 42, and controls theAD/DA 62. The power supply section 65 converts the DC voltage suppliedfrom the DC In terminal 36 into a predetermined voltage and supplies itto the audio server 1 in its entirety.

The following describes, with reference to FIG. 7, the firmware whichthe main CPU 51 reads from the flash ROM 52 to actually execute thefunctions of the audio server 1 which are described below. It should benoted that the functions of the audio server 1 include CD ripping, CDrecording, HD recording (digital input), HD recording (analog input), HDplay, CD play, MS play, check-out/check-in, import, and move-out/move-infor example, their details and relationship with the firmware beingdescribed later with reference to FIGS. 47 through 56.

The firmware has four layers, namely, an application layer (APP) 72, anupper-middleware layer (UMW) 73, a lower-middleware layer (LMW) 74, anda device driver layer (DD) 75.

The application layer 72 includes a main application (hereafter referredto as a main APP) 76, a hard disk application (hereafter referred to asan HD APP) 77, a CD application (hereafter referred to as a CD APP) 78,a Memory Stick application (hereafter referred to as an MS APP) 79, aportable device application (hereafter referred to as a PD APP) 80, anda front-end processor (hereafter referred to as an FEP) 81.

Each module of the application layer 72 requests the correspondingmodule of the upper-middleware layer 73 in accordance with the useroperation associated with a function executable by the audio server 1and provides a user interface by controlling the display of processingsituations.

The main APP 76 controls each module of the application layer 72. Forexample, at the time of starting up, the main APP 76 creates a startupscreen to start up each module. In response to a user operationtransmitted from an input middleware 97, main APP 76 notifies thecorresponding module thereof. The main APP 76 supplies the display datafrom each module to a display device driver 105. The main APP 76executes switching between modules. In response to a volume changeoperation done by the user, the main APP 76 notifies an audio IOmiddleware (AIO) 94. In response to a setup operation done by the user,the main APP 76 notifies each module of settings. The main APP 76 holdsthe setting information (play mode for example) common to the modules.In response to a power-off operation, the main APP 76 ends each moduleand requests a system control middleware (SYSTEM) 98 for a power-offsequence.

Upon reception of a HDD 58 driving operation, the HD APP 77 notifies ahard disk middleware 82 thereof and gets an operation state of the harddisk middleware 82 to generate display data.

Upon reception of a CD-ROM drive 57 driving operation, the CD APP 78notifies a CD middleware 88 thereof and gets an operation state of theCD middleware 88 to generate display data.

Upon reception of an operation associated with the MS 4 loaded in the MSslot 45, the MS APP 79 notifies the MS middleware 89 thereof and gets anoperation state of the MS middleware 89 to generate display data.

Upon reception of an operation associated with the PD 5 connected to theconnector 43, the PD APP 80 notifies a PD middleware 90 thereof and getsan operation state of the PD middleware 90 to generate display data.

The FEP 81 executes kana-kanji conversion when inputting the title, forexample, of the music CD 3 to be recorded.

The upper-middleware layer 73 is composed of the following modulesobtained by modeling the functions of the audio server 1. Namely, theupper-middleware layer 73 includes the hard disk middleware (hereafterreferred to as an HD MW) 82, the CD middleware (hereafter referred to asa CD MW) 88, the MS middleware (hereafter referred to as an MS MW) 89and the PD middle ware (hereafter referred to as a PD MW) 90.

The HD MW 82 is composed of an HDCC 83 which manages the encoded datastored in the HDD 58, a CD RIPPING 84 which compresses and encrypts theaudio data stored the music CD 3 in cooperation with the CD MW 88 torecord the resultant data to the HDD 58, an HD PLAY 85 which decryptsand decompresses the encoded data stored in the HDD 58 in cooperationwith the audio IO middleware 94, an HD REC 86 which compresses andencrypts the audio data inputted from the AUX In terminal 31 incooperation with the audio IO middleware 94, and a C IN/C OUT 87 whichcontrols the check-in and check-out operations with the MS 4 or the PD 5in cooperation with the MS MW 89 or the PD MW 90.

The CD MW 88 realizes a function as a CD player by causing the CD devicedriver 102 to control the CD-ROM drive 57. The MD MW 89 realizes afunction as an MS player in cooperation with an audio IO middleware 94and an MS file system middleware 95. The PD MW 90 controls the PD 5 incooperation with an USB host middleware 96 and a USB host device driver104.

The lower-middleware layer 74 includes the following modules obtained bymodeling the functions which can be shared by the modules of theupper-middleware layer 73, namely, a hard disk object databasemiddleware (hereafter referred to as an HD DB) 91, a hard disk filesystem middleware (hereafter referred to as an HD FS) 92, an MGRmiddleware (MGR) 93, the audio IO middleware (AIO) 94, the Memory StickFile System Middleware (MS FS) 95, the USB host middle ware (USB) 96,the input handle middleware (INPUT) 97, and the system controlmiddleware (SYSTEM) 98. Each module constituting the lower-middlewarelayer 74 is called by each module constituting the upper-middlewarelayer 73.

The device driver layer (DD) 75 includes the following modules which areobtained by modeling hardware devices, namely, a hard disk device driver99, a decoder/encoder device driver 100, a DMA device driver 101, a CDdevice driver 102, a signal processor device driver 103, a USB hostdevice driver 104, a display device driver 105, an audio device driver106, a key device driver 107, a power device driver 108, and a clockdevice driver 109. It should be noted that, in FIG. 7, the audio devicedriver 106 through the clock device driver 109 enclosed by dashed linesare executed by the sub CPU 64. Each module is constituted mainly bylibraries, its API (Application Program Interface) being called by eachmodule included in the upper-middleware layer 73 or the lower-middlewarelayer 74.

The following describes a FAT (File Allocation Table)-type file system(data format) applied to the HDD 58 with reference to FIGS. 8 through20. As shown in FIG. 8, the HDD 58 has a file recording area 121 forrecording encoded data (content data) as a file and an object recordingarea 122 for recording an object including the information foridentifying a position at which the content data recorded to the filerecording area 121 are recorded.

A file managing block 123 executes all file-associated processes such asfile creation, issuance of ID to newly created file, and read, write anddelete operations on the file recording area 121. The file managingblock 123 is equivalent to the HD FS 92 included in the lower-middlewarelayer 74.

An object managing block 124 recognizes the physical location of anobject in the object recording area 122 and executes object write, read,and delete operations. The object managing block 124 is equivalent tothe HD DB 91 included in the lower-middleware layer 74. It should benoted that the management of objects by a database will be describedlater with reference to FIGS. 21 through 37.

FIG. 9 shows a logical structure of the file recording area 121. Thefile recording area 121 is divided into sectors having a predeterminedcapacity, which is the minimum unit of writing and reading in the filerecording area 121. Each sector is assigned with a serial sector number.The file recording area 121 is formed by a FAT area, a system area, anda plurality of clusters, configured by the predetermined number ofsectors. Each cluster is assigned with a cluster number having a fixedlength. Each file to be recorded in the file recording area 121 isformed by a plurality of interlinked clusters.

The linking relationship between the clusters is recorded to a tablecalled a FAT 141 (FIG. 10). The FAT 141 is recorded in the FAT area ofthe file recording area 121 and, when the file managing block 123operates, transferred to the SDRAM 53.

FIG. 10 shows a structure of the FAT 141. The FAT 141 is configured by aFAT header 142 and a plurality of FAT entries 144 corresponding to theclusters respectively. The header 142 includes a free cluster list startnumber recording area 143. The start cluster numbers of the sequence offree clusters recording no data are recorded to the free cluster liststart number recording area 143. If there is no free cluster,−1=0xFFFFFFFF is recorded to the free cluster list start numberrecording area 143.

Each FAT entry 144 is assigned with the entry number which is the samenumber as the cluster number assigned to the corresponding cluster. Forexample, the FAT entry corresponding to cluster number 1 is assignedwith entry number 1. In what follows, the FAT entry having entry number1 is also written as FAT entry E(1). The FAT entry 144 is divided intocolumn P 145 and column N 146.

To the P column 145 of the FAT entry 144, the cluster number assigned tothe cluster linked before the corresponding cluster is recorded. Ifthere is no cluster to be linked before, namely, if the correspondingcluster is located at the head of the file, 0xFFFFFFFF is recorded tothe P column 146.

To the N column 146 of the FAT entry 144, the cluster number assigned tothe cluster linked after the corresponding cluster is recorded. If thereis no cluster linked after, namely, if the corresponding cluster islocated at the end of the file, 0xFFFFFFFF is recorded to the N column146.

For example, if only one cluster is recorded to five clusters havingcluster numbers 1, 5, 6, 8, and 12 in the file recording area 121, then,as shown in FIG. 11, 0xFFFFFFFF indicative of that there is no clusterto be linked before is recorded to column P of FAT entry E(1) of entrynumber 1 (0x00000001) and cluster number 5 (0xFFFFFFFF) is assigned tothe cluster linked after is recorded to column N.

To column P of FAT entry E(5) of entry number 5 (0x00000005), clusternumber 1 (0x00000001) assigned to the cluster linked before is recordedand, to column N, cluster number 6 (0x00000006) assigned to the clusterlinked after is recorded.

The like recording is performed to the FAT entries E(6) and E(8) ofentry numbers 6 and 8.

To column P of FAT entry E(12) of entry number 12 (0x0000000C), clusternumber 8 (0x00000008) assigned to the cluster linked before is recordedand, to column N, 0xFFFFFFFF indicative of that there is no clusterlinked after is recorded.

In this case, a sequence of clusters from cluster number (0x00000002) tocluster number (0x00000014) are free clusters, so that the clusternumber (0x00000002) indicative of its head is recorded to the freecluster list start number recording area 143.

FIG. 12 shows a manner in which one file is recorded to five clustersassigned with cluster numbers 1, 5, 6, 8, and 12. The file start cluster(in this case, cluster 1) has a size recording area 151 for recordinginformation associated with file size. The data contained in this fileare recorded to the second (in this case, cluster 5) and subsequentclusters. It should be noted that the size recording area 151 may bearranged in the cluster at the end of file (in this case, cluster 12).

FIG. 13 shows an exemplary configuration of the size recording area 151.The size recording area 151 has a valid size recording area 152, a lastcluster number recording area 153, and an occupied cluster countrecording area 154. To the valid size recording area 152, the number ofvalid bytes of the end cluster (in this case, cluster 12) is recorded.Normally, its value is 1 or more, a value below cluster size beingrecorded. To the last cluster number recording area 153, the clusternumber (in this case, 0x0000000C) of the end cluster (in this case,cluster 12) is recorded. To the occupied cluster count recording area154, the number of clusters forming the data recording portion of file(in this case, 4) is recorded.

The following describes a file creating process (namely, a content datarecording process), a file reading process, and a file reserve readingprocess (namely, a process of reading content data in reversedirection), which use FAT, with reference to the flowcharts shown inFIGS. 14 through 20. It should be noted that these processes arecontrolled by the HD FS 92 belonging to the file managing block 123,namely the lower-middleware layer 74.

First, the file creating process will be described with reference to theflowchart shown in FIG. 14. In step S1, the HD FS 92 transfers thecontent data to be recorded to the HDD 58 from the CD-ROM drive 57 forexample to the buffer 56 on a cluster size basis (let the data amounttransferred be S bytes). In step S2, the HD FS 92 searches the filerecording area 121 for free clusters and retrieves (or allocates) them.

This free cluster retrieving process will be described with reference tothe flowchart shown in FIG. 15. In step S21, the HD FS 92 reads value Qrecorded to the free cluster list start number recording area 143recorded to the FAT header 141. In step S22, the HD FS 92 determineswhether or not value Q is −1, namely, whether there is no free cluster.If value Q is not −1, namely, if there is a free cluster, then theprocedure goes to step S23. In step S23, the HD FS 92 reads FAT entryE(Q) corresponding to value Q (the cluster number of the free cluster).

The following describes a process of reading FAT entry E(X)corresponding to given cluster number X in relation to the process ofreading FAT entry E(Q) with reference to the flowchart shown in FIG. 16.In step S41, the HD FS 92 adds a known FAT header size to a known FATentry start address and then adds a product obtained by multiplying avalue obtained by subtracting 1 from value X (X−1) by a known entrysize, thereby computing address A. In step S42, the HD FS 92 reads thedata by one entry size with address A as the start address. This is theprocess of reading FAT entry E(X) corresponding to given cluster numberX.

Returning to FIG. 15, the HD FS 92 determines whether or not the valueof column N of FAT entry E(Q) is −1 (0xFFFFFFFF) in step S24. If thevalue of column N of FAT entry E(Q) is not −1, then the procedure goesto step S25.

In step S25, the HD FS 92 substitutes the value of column N of FAT entryE(Q) into variable M. In step S26, the HD FS 92 reads FAT entry E(M)corresponding to cluster number M. In step S27, the HD FS 92 records −1(0xFFFFFFFF) to column P of FAT entry E(M).

In step S28, the HD FS 92 records −1 (0xFFFFFFFF) to column N of FATentry E(Q) and −1 (0xFFFFFFFF) to column P of FAT entry E(Q) In stepS29, the HD FS 92 returns to FIG. 14 because there is a free cluster ofcluster number Q. This is the process of free cluster retrieval.

It should be noted that, in step S24, if the value of column N of FATentry E(Q) is found −1, the processes of steps S25 through S27 areskipped.

If value Q recorded to the free cluster list start number recording area143 is found −1 in step S22, then the procedure goes to step S30. Instep S30, the HD FS 92 returns to FIG. 14 because there is no freecluster. It should be noted that, if no free cluster is found, it isregarded that the HDD 58 is full, and the file creating process shown inFIG. 14 comes to an end.

In what follows, the description will be continued by reading theretrieved free cluster having cluster number Q as the free clusterhaving cluster number V. In step S3, the HD FS 92 substitutes clusternumber V of free cluster into variables X and A. In step S4, the HD FS92 substitutes 0 into occupied cluster count T. In step S5, the HD FS 92retrieves a new free cluster in the same manner as the above-mentionedprocess of step S2. Let the cluster number of the retrieved free clusterbe V. If no new free cluster is retrieved, this file creating processcomes to an end.

In step S6, the HD FS 92 substitutes value V into variable B. In stepS7, the HD FS 92 increments occupied cluster count T by 1. In step S8,the HD FS 92 converts cluster number B into sector numbers (for example,if sectors are related to clusters as shown in FIG. 9, cluster number 2is converted into sector numbers 28 through 35). Sector numberscorresponding to cluster number B are determined. In step S9, the HD FS92 records the content data buffered in step S1 to the converted sectornumbers in the file recording area 121.

After the recording of the buffered content data has ended, the HD FS 92links the cluster of cluster number B to the cluster of cluster number A(at this point of time, this cluster is a free cluster) in step S10. Thefollowing describes this linking process with reference to the flowchartof FIG. 17.

In step S51, as with the above-mentioned process described withreference to FIG. 16, the HD FS 92 reads FAT entry E(A) corresponding tocluster number A and, in step S52, reads FAT entry E(B) corresponding tocluster number B. In step S53, the HD FS 92 records cluster number B tocolumn N of FAT entry E(A) and cluster number A to column P of FAT entryE (B). It should be noted that the process of step S53 is executed onthe FAT 141 developed in the SDRAM 53. This is the process of linkingthe cluster having cluster number A and the cluster having clusternumber B.

Returning to FIG. 14, in step S11, the HD FS 92 determines whether ornot data amount S of the content data recorded in step S9 is equal tothe cluster size. If data amount S of the content data recorded in stepS9 is found equal to the cluster size, then it indicates that therecording of the content data to be recorded has not completed, so thatthe procedure goes to step S12.

In step S12, the remaining portion of the content data recorded beforeis transferred to the buffer 56 by the cluster size. In step S13,cluster number B is substituted into variable A. In step S14, the HD FS92 retrieves a new free cluster as with the above-mentioned process ofstep S2. Let the cluster number of the newly retrieved cluster be V. Itshould be noted that, if no new free cluster is retrieved in step S14,then the procedure goes to step S17. In step S15, the HD FS 92substitutes value V into variable B. In step S16, the HD FS 92increments occupied cluster count T by 1.

Then, the procedure returns to step S8 to repeat the above-mentionedprocesses. If, in step S11, data amount S of the content recorded instep S9 is found unequal to the cluster size, it indicates that therecording of the content data to be recorded has been completed, so thatthe procedure goes to step S17.

In step S17, the HD FS 92 arranges the size recording area 151 in thefree cluster having cluster number X retrieved in step S2, records dataamount S recorded to the last cluster to the valid size recording area152, records the value of variable B to the last cluster numberrecording area 153, and records the value of variable T to the occupiedcluster count recording area 154.

In step S18, the FAT 141 recorded to the FAT area of the file recordingarea 121 is updated by the FAT 141 rewritten by the process of step S10.Thus, a new file is created. It should be noted that a file identifierhaving the same value as the start cluster number of a sequence clustersrecorded with content data is issued to the newly created file.

The following describes a process of reading a file of which fileidentifier is X (hereafter referred to as file X) with reference to theflowchart shown in FIG. 18. In step S61, the HD FS 92 executes a searchprocess for determining whether or not there is file X.

The following describes a file X search process with reference to theflowchart shown in FIG. 19. In step S81, the HD FS 92 gets FAT entryE(X) corresponding to entry number X. In step S82, the HD FS 92determines whether or not the value of column P of FAT entry E(X) is −1(0xFFFFFFFF). If the value of column P of FAT entry E(X) is found −1,then the procedure goes to step S83. In step S83, file X is foundexisting because the cluster of entry number X (=cluster number X) isthe start cluster among a sequence of clusters on which the file isrecorded, so that the procedure returns to the file reading processshown in FIG. 18.

Conversely, if the value of column P of FAT entry E(X) is found not −1in step S82, the procedure goes to step S84. In step S84, the HD FS 92determines that there is no file X because the cluster of entry number X(=cluster number X) is not the start cluster among a sequence ofclusters on which the file is recorded, so that the procedure returns tothe file reading process shown in FIG. 18. Thus, the file X searchprocess is executed.

In what follows, the description will be continued on the assumptionthat file X exists. In step S62, the HD FS 92 determines whether or notthe value of column N of FAT entry E (X) is −1 (0xFFFFFFFF). If thevalue of FAT entry E(X) is found −1, then it indicates that file X hasno data, so that the reading process comes to an end.

If the value of column N of FAT entry E(X) is found not −1 in step S62,then the procedure goes to step S63. In step S63, the HD FS 92 convertscluster number X (the start cluster) into sector numbers. In step S64,the HD FS 92 controls the DMA controller 55 to read the size recordingarea 151 recorded to the converted sector numbers to buffer this area inthe buffer 56. In step S64, the HD FS 92 reads valid size S (the dataamount recorded to the last cluster among a sequence of clusters onwhich file X is recorded) recorded to the valid size recording area 152of the size recording area 151 buffered in step S63.

In step S66, the HD FS 92 substitutes the value of column N of FAT entryE(X) into variable C. In step S67, the HD FS 92 reads FAT entry E(C)corresponding to cluster number C, namely the second cluster, as withthe above-mentioned process described with reference to FIG. 16. In stepS68, the HD FS 92 converts cluster number C into sector numbers. In stepS69, the HD FS 92 controls the DMA controller 55 to read the contentdata recorded to the sectors having the converted sector numbers by onecluster to buffer the content data in the buffer 56.

In step S70, the HD FS 92 determines whether or not the value of columnN of FAT entry E(C) is −1 (0xFFFFFFFF). If the value of column N of FATentry E(C) is found not −1, then the procedure goes to step S71. In stepS71, the HD FS 92 controls the DMA controller 55 to output all databuffered in the buffer 56 to the encoder/decoder 59 and so on. Becausethe content data of file X have not all been read, so that the proceduregoes to step S72. In step S72, the HD FS 92 substitutes the value ofcolumn N of FAT entry E(C) into variable C. Then, the procedure returnsto step S67 to repeat the above-mentioned processes.

Then, in step S70, if the value of column N of FAT entry E(C) is found−1, it indicates that the reading starting with the last clusterrecorded with the content data of file X has been completed, so that theprocedure goes to step S73. In step S73, the HD FS 92 controls the DMAcontroller 55 to output the data for valid size S which are the last ofthe content data buffered in the buffer 56 to the encoder/decoder 59 andso on.

If no file X is found existing in the file search process of step S61,the procedure goes to step S74, in which an error is determined, uponwhich the file X reading process comes to an end. Thus, the file Xreading process is executed.

The following describes a file X reverse reading process with referenceto the flowchart shown in FIG. 20. The reverse reading herein denotes aprocess in which content data are played back every several secondretrospectively such that certain content data of which play time is 100seconds are played back for about 100 milliseconds from 90th second andthen played back for 100 milliseconds from 80th second and then playedback for 100 milliseconds from 70th second, for example.

In step S91, the HD FS 92 converts the file identifier (=X, hereafterreferred to as ID(X)) into sector numbers. It should be noted that ID(X)is the same as the cluster number of the start cluster among a sequenceof clusters on which file X is recorded.

In step S92, FAT entry E(X) corresponding to cluster X is read. In stepS93, the HD FS 92 controls the DMA controller 55 to read the sizerecording area 151 recorded to the sector having the sector numberconverted in step S91 to buffer it in the buffer 56. In step S94, the HDFS 92 reads valid size S from the valid size recording area 152 of thesize recording area 151 buffered in step S93 and last cluster number Zfrom the last cluster number recording area 153.

In step S95, the HD FS 92 determines whether or not last cluster numberZ is equal to ID(X). If last cluster number Z is found equal to ID(X),it indicates that file X has no content data, so that the reversereading process comes to an end.

If last cluster number Z is found unequal to ID(X), then the proceduregoes to step S96. In step S96, the HD FS 92 converts last cluster numberZ to sector numbers. In step S97, the HD FS 92 controls the DMAcontroller 55 to read the data including the end portion of the contentdata recorded to the sector numbers converted in step S96 to buffer thedata in the buffer 56. In step S98, the HD FS 92 controls the DMAcontroller 55 to output only the data for S bytes of the data bufferedin the buffer 56, namely, the end portion of the content data to theencoder/decoder 59 and so on.

In step S99, the HD FS 92 reads FAT entry E(Z) corresponding to lastcluster number Z. In step S100, the HD FS 92 determines whether or notthe value of column P of FAT entry E(Z) is equal to ID(X). If the valueof column P of FAT entry E(Z) is found equal to ID(X), the reversereading process comes to an end because the content data of file X havebeen recorded to the last one cluster.

If the value of column P of FAT entry E(Z) is found unequal to ID(X),then the procedure goes to step S101 to read the data by one clusterfrom the end retrospectively. In step S101, the HD FS 92 substitutes thevalue of column P of FAT entry E(Z) into variable C.

In step S102, the HD FS 92 reads FAT entry E(C) corresponding to clusternumber C. In step S103, the HD FS 92 converts cluster number C intosector numbers. In step S104, the HD FS 92 controls the DMA controller55 to read the content data recorded to the sector numbers converted instep S103 to buffer the content data in the buffer 56. In step S105, theHD FS 92 controls the DMA controller 55 to output the content data forone cluster buffered in the buffer 56 to the encoder/decoder 59 and soon.

In step S106, the HD FS 92 determines whether or not the value of columnP of FAT entry E(C) corresponding to cluster number C is equal to ID(X).If the value of column P of FAT entry E(C) is found unequal to ID(X), itindicates that file X has not all been read, so that the procedure goesto step S107 to read by one cluster retrospectively. In step S107, theHD FS 92 substitutes the value of column P of FAT entry E(C) intovariable C. Then, the procedure returns to step S102 to repeat theabove-mentioned processes.

If the value of column P of FAT entry E(C) is found equal to ID(X) instep S106, it indicates that file X has been read up to its beginning,so that the reverse reading process comes to an end. Thus, the file Xreverse reading process is executed.

As described and according to the HD FS 92 of the audio server 1, for afile identifier for identifying a particular file, a cluster number,which is a fixed-length value, of the start cluster of the area to whichthis file is recorded is assigned, so that the recording position of thefile may be identified with ease. Consequently, as compared with thecase in which a file name is not fixed in length, the file search timemay be significantly reduced.

In addition, because of the fixed file length, the time required for afile search operation may be made uniform.

Further, according to the HD FS 92 of the audio server 1, there is nolimitation to the size of a file to be recorded, so that not only audiodata but also video data, which are greater in size may be recorded as afile.

Still further, according to the HD FS 92 of the audio server 1, if onefile is recorded over a plurality of clusters, the clusters are used inthe forward direction, so that, at the time of recording and playback, aseek operation is performed in a constant direction. Consequently, therecording drops at recording and sound drops at playback are preventedfrom occurring.

The following describes objects corresponding to folder, album or trackwith reference to FIGS. 21 through 27. FIG. 21 shows a logical structureof the object recording area 122 to which an object is recorded. Theobject recording area 122 is formed by a system area 161 and a pluralityof chunks divided so as to have a predetermined capacity. Each object isrecorded to chunks.

The system area 161 has a header 162, an object type recording area 163,and an area information recording area 164. To the plurality of chunks,serial numbers beginning with 1 are applied in order from the top one ofthem. In the following description, for example, the chunk to which thenumber 1 is applied is referred to as chunk 1, the chunk to which thenumber 2 is applied is referred to as chunk 2, and so forth.

Each chunk is divided into pages having a predetermined capacity. Thepages forming each chunk are assigned with serial numbers, 0 to thestart page and subsequent numbers to the subsequent pages. For example,the page assigned with number 0 is page 0, the page assigned with number1 is page 0, and so on.

FIG. 22 shows the structure of the object type recording area 163 of thesystem area 161, which is formed by a header 165 and T entries. T is apreset constant. The header 165 has an entry count recording area 166.The entry count recording area 166 records the number of currentlyregistered entries (the maximum value is T).

Each entry of the object type recording area 163 has a size recordingarea 167, a basic object type number recording area 168, and a parameterrecording area 169. For example, entry t records the informationassociated with object type number t. Namely, the size recording area167 of entry t records the size of the object having object type numbert. The basic object type number recording area 168 of entry t recordsthe basic object type number indicative of the basic object type towhich the object having object type number t belongs. The parameterrecording area 169 of entry t records the information associated withthe size as it is when the size of the object having object type numbert is variable in length.

FIG. 23 shows the area information recording area 164 of the system area161. The area information recording area 164 is formed by the bitsequences indicative of the total number of pages of the objectrecording area 122 (a value obtained by multiplying the total number ofchunks by the number of pages forming one chunk). It should be notedthat, for the convenience of description, FIG. 23 shows a matrix of (thetotal number of chunks) column×(the number of pages forming one chunk)row. For example, as shown in FIG. 23, the bit indicated by “O” atcolumn q, row p corresponds to page p of chunk q. If page p of chunk qis in use, 1 is recorded to the bit indicated by “O”. Conversely, ifpage p of chunk q is in use, 0 is recorded to the bit indicated by “O”.

FIG. 24 shows an exemplary configuration of the object managing block124 equivalent to the HD DB 91 included in the lower-middleware layer74. The object managing block 124 is formed by an object typeregistering block 171, a storage area managing block 172, a sessionmanaging block 173, and a cache managing block 174.

The object type registering block 171 performs the registration ofobject types (the writing to the object type recording area 163).Further, the object type registering block 171 performs the response tothe enquires for object types (the reading from the object typerecording area 163).

The storage area managing block 172 inverts predetermined bits in thearea information recording area 164. Further, the storage area managingblock 172 also searches for a continuous unused area of thepredetermined number of pages by reading the bit of the area informationrecording area 164. In addition, the storage area managing block 172issues an identifier to each object.

The session managing block 173 issues a session number to the currentlyexecuted session and manages session managing information 181 (FIG. 25).Term session herein denotes a process for controlling data read andwrite operations for example.

FIG. 25 shows an exemplary configuration of the session managinginformation 181. The session managing information 181 is formed by acurrent session count storage area 182 for storing the number ofcurrently opened sessions (hereafter referred to as the number ofcurrent sessions) and S entries corresponding to objects and in each ofwhich information of a session having the access right to the object isrecorded. The maximum value of the number of current sessions and valueS are predetermined.

Each entry of the session managing information 181 is formed by anobject identifier storage area 183, a read/write session number storagearea 184, a read-only session number storage areas 185 through 188, anobject state storage area 189, a read cache address storage area 190, awrite cache address storage area 191, and an access time storage area192.

The object identifier storage area 183 stores the object identifier ofthe corresponding object (FIG. 27). The read/write session numberstorage area 184 stores the session number of the session having writeaccess right to the corresponding object. The read-only session numberstorage areas 185 through 188 store the session numbers having readaccess right to the corresponding object. It should be noted that aplurality of sessions having read access right to an object may exist.FIG. 25 shows an example in which there are up to four sessions havingread access right and one session having read/write access right.

The object state storage area 189 stores information indicative of thestate of the corresponding object (“CREATE” indicative of creation,“UPDATE” indicative of update, and “REMOVE” indicative of removal). Theread cache address storage area 190 stores the address of the read cachein which an object to be read is temporarily stored. The write cacheaddress storage section 191 stores the address of the write cache inwhich an object to be written is temporarily stored. The access timestorage area 192 stores the last access time for the correspondingobject.

It should be noted that, if there is no information to be stored in theobject identifier storage area 183 through the access time storage area192, 0 is stored in these storage areas.

FIG. 26A and FIG. 26B show the exemplary configurations of basic objecttype 1 and basic object type 2, which are the two basic object types tobe recorded to chunks.

As shown in FIG. 26A, basic object type 1 is formed by an objectidentifier recording area 201 for recording own object identifier and anarbitrary data recording area 202 for recording given data (for example,the data such as the name of the object to be set by the user). Thebasic object type 1 includes objects such as folder list, folder, andalbum.

As shown in FIG. 26B, basic object type 2 is formed by the objectidentifier recording area 201 for recording own object identifier, thearbitrary data recording area 202 for recording arbitrary data, and afile identifier recording area 203 for recording the file identifier ofthe file corresponding to the own (object). Basic object type 2 includesa track object.

The object identifier to be recorded to the object identifier recordingarea 201 is formed by a chunk number indicative of the head of asequence of pages in which a corresponding object is stored, the numberof the head page, and a type number as shown in FIG. 27. The type numberis formed by basic object type number to which the corresponding objectbelongs (either basic object type 1 or basic object type 2) and theentry number of the object type recording area 163 in which the type ofthe corresponding object is registered.

The following describes an object creating process, an object searchingprocess, an object updating process, a stream object creating process,and a stream object searching process with reference to the flowchartsshown in FIGS. 28 through 37. Term stream object herein denotes theobject which corresponds, one to one, to the content data stored in thefile recording area 121, namely the stream object indicates a track. Thestream object belongs to basic object type 2 (FIG. 26B) Therefore, anyother objects than the stream object are folder or album objects, whichbelong to basic object type 1.

It should be noted that the above-mentioned processes are controlled bythe object managing block 124, namely the HD DB 91 belonging to thelower-middleware layer 74 of the firmware.

First, the object creating process not for stream objects will bedescribed by use of an example in which an object of object type numbert with reference to the flowchart shown in FIG. 28. It should be notedthat object type number t includes basic type number (in this example,basic object type 1) and entry number as shown in FIG. 27.

In step S121, the HD DB 91 opens a write session. The write sessionopening process will be described below with reference to the flowchartshown in FIG. 29. In step S141, the HD DB 91 reads the number of currentsessions from the current session count storage area 182 to determinewhether or not the number of retrieved current sessions is smaller thanthe preset maximum value. If the number of current sessions is foundsmaller than the preset maximum value, the procedure goes to step S142.

In step S142, the HD DB 91 increments the number of current sessionsstored in the current session count storage area 182 of the sessionmanaging information 181 by 1. In step S143 the HD DB 91 opens a writesession and issues session number Z by use of random numbers forexample. The procedure returns to FIG. 28.

It should be noted that, if, in step S141, the number of currentsessions is found not smaller than the preset maximum value, no moresession can be opened, so that the procedure goes to step S144, in whichthe HD DB 91 determines an error. Then, the session opening processingcomes to an end and the object creating process shown in FIG. 28 isdiscontinued.

In step S122 shown in FIG. 28, in order to allocate pages of a chunk towhich an object of object type number t is recorded, the HD DB 91 readsthe size of the object of object type number t from the size recordingarea 167 of entry t of object type recording area 163 to compute thenumber of pages of the chunk equivalent to the computed size. Let thecomputed number of pages be g.

In step S123, the HD DB 91 allocates a free entry among the plurality ofentries forming the session managing information 181. The followingdescribes a process of free entry allocation with reference to theflowchart shown in FIG. 30.

In step S151, the HD DB 91 initializes variable M to 1. In step S152,the HD DB 91 determines whether or not variable M is equal to or smallerthan the number of entries S forming the session managing information181. If variable M is found equal to or smaller than the number ofentries S, then the procedure goes to step S153. In step S153, the HD DB91 reads the value of the object identifier storage area 183 forming thesession managing information 181. In step S154, the HD DB 91 determineswhether or not the value of the object identifier storage area 183 ofretrieved entry M is 0. If the value of object identifier storage area183 of entry M is found 0, it indicates that entry M is a free entry, sothat entry M is allocated, upon which the procedure returns to FIG. 28.

In step S154, if the value of the object identifier storage area 183 ofentry M is found not 0, then the procedure goes to step S155. In stepS155, the HD DB 91 increments variable M by 1. The procedure returns tostep S152 to repeat the above-mentioned processes. Then, if the value ofobject identifier storage area 183 of entry M is found not 0 in stepS154 and variable M is found not equal to or smaller than the number ofentries S in step S152, it indicates that there is currently no freeentry, so that the procedure goes to step S156 to create a free entry.

In step S156, the HD DB 91 determines whether or not, among the entriesforming the session managing information 181, there is any entry thatthe values of the read/write session number storage block 184 and theread-only session number storage blocks 185 through 188 are all 0s. Ifsuch an entry is found, the procedure goes to step S157. In step S157,the HD DB 91 extracts, from among the entries that the values of theread/write session number storage block 184 and read-only session numberstorage blocks 185 through 188 are all 0s, the entry that the value ofthe access time storage area 192 is the smallest (namely, the entry ofthe least recent access time).

In step S158, the HD DB 91 clears the values of the current sessioncount storage area 182 through access time storage area 192 of theextracted entry to 0s and allocates this entry as free entry M. Theprocedure returns to FIG. 28.

It should be noted that, in step S156, among the entries forming thesession managing information 181, if there is no entry that the valuesof the read/write session number storage block 184 and the read-onlysession number storage blocks 185 through 188 are all 0s, it indicatesthat no free entry can be allocated, so that the procedure goes to stepS159. In step S159, the HD DB 91 determines an error. The free entryallocating processing comes to an end and the object creating processshown in FIG. 28 is discontinued.

Returning to FIG. 28, in step S124, the HD DB 91 searches the areainformation recording area 164 for a bit sequence recorded with 0s by gbits continuously. Let the start position of the retrieved bit sequencerecorded with 0s by g bits continuously be column q, row p. In stepS125, the HD DB 91 stores, in the object identifier storage area 183 ofallocated entry M, object identifier OID (q, p, t) formed by chunknumber q, page number p, and object type number t as shown in FIG. 27.In addition, the HD DB 91 stores session number Z into the read/writesession number storage area 184 of the entry M in session managinginformation 181 and records “CREATE” indicative of the object creationinto the object state storage area 189.

In step S126, the HD DB 91 allocates a write cache area d equal to thenumber of pages g indicative of the size of the object, into the buffer56. In step S127, the HD DB 91 stores the address of the write cachearea d allocated in the buffer 56 into the write cache address storagearea 191 of entry M of the session managing information 181.

In step S128, the HD DB 91 starts recording object X of object basictype 1 shown in FIG. 26A to the write cache area d allocated in thebuffer 56. In doing so, the HD DB 91 first records the object identifierOID (q, p, t) to the object identifier recording area 201 in the writecache area d. In step S129, the HD DB 91 records the arbitrary data ofthe object to be created (for example, the name of the object to becreated) to the arbitrary data recording area 202 in the write cachearea d.

In step 130, the HD DB 91 waits for the input of signal I representativeof a user operation. In step S131, the HD DB 91 determines whether ornot signal I is “commit,” namely whether or not signal I is forestablishing the session creation. If signal I is found a commit, thenthe procedure goes to step S132 to establish write session Z. If signalI is fount not a commit, then the procedure goes to step S133 to discardwrite session Z.

The following describes a process of establishing the write sessionshown in step S132 with reference to the flowchart shown in FIG. 31. Itshould be noted that “establishment of a session” herein denotes toreflect the recording in the object recording area 122 upon creation,updating and moving or the like of an object performed after opening ofthe session concerned and enter the results of the reflection.

In step S171, the HD DB 91 initializes variable M to 1. In step S172,the HD DB 91 determines whether or not variable M is equal to or smallerthan the number of entries S forming the session managing information181. If variable M is found equal to or smaller than the number ofentries S, then the procedure goes to step S173. In step S173, the HD DB91 reads the value of read/write session number storage area 184 ofentry M forming the session managing information 181 to determinewhether or not this value matches session number Z. If the value of theread/write session number storage area 184 of entry M is found notmatching session number Z, the procedure goes to step S174 to search foran entry that the value of the read/write session number storage area184 of entry M matches session number Z.

In step S174, the HD DB 91 increments variable M by 1. The procedurereturns to step S172 to repeat the above-mentioned processes. If thevalue of the read/write session number storage area 184 of entry M isfound matching session number Z in step S173, then the procedure goes tostep S175. Namely, only the entry in which session number Z is stored inthe read/write session number storage area 184 is extracted to beprocessed in steps S175 and on.

In step S175, the HD DB 91 reads the object identifier from the objectidentifier storage area 183 of entry M in which session number Z isstored in the read/write session number storage area 184. In step S176,the HD DB 91 reads information J indicative of object state from theobject state storage area 189 of entry M in which session number Z isstored in the read/write session number storage area 184. In step S176,the HD DB 91 determines whether information J indicative of object stateis “CREATE”, “UPDATE”, or “REMOVE”.

If information J indicative of object state is found “CREATE”, then theprocedure goes to step S178. In step S178, the HD DB 91 records theobject recorded to the write cache area d allocated in the buffer 56 topages q and on of chunk p in the object recording area 122. In stepS179, the HD DB 91 records 1 to g bits subsequent to column q, row p inthe area information recording area 164.

In step S180, the HD DB 91 copies the value of write cache addressstorage area 191 of entry M to the read cache address storage area 190.If a value other than 0 is stored in the read cache address storage area190, then the read cache area in which the buffer 56 indicated by thatvalue is arranged is freed.

In step S181, the HD DB 91 stores 0s into the read/write session numberstorage area 184 of entry M and the write cache address storage area 191of entry M. In step S182, the HD DB 91 updates the value of the accesstime storage area 192 of entry M by the current time.

If information J indicative of object state is found “UPDATE” in stepS177, the procedure goes to step S183. In step S183, the HD DB 91records the object recorded to write cache area d allocated in thebuffer 56 to pages q and on of chunk p in object recording area 122. Theprocedure goes to step S180.

If information J indicative of object state is found “REMOVE” in stepS177, the procedure goes to step S184. In step S184, the HD DB 91records 0s to g bits subsequent to column q, row p of the areainformation recording area 164. In step S185, the HD DB 91 frees thewrite cache and read cache allocated in the buffer 56 by entry M. Instep S186, the HD DB 91 stores 0s into the object identifier storagearea 183 through the access time storage area 192 of entry M. Theprocessing goes to step S174.

Then, the processes subsequent to step S172 are repeated until variableM is found not equal to or smaller than the number of entries S in stepS172. If variable M is found not equal to or smaller than the number ofentries S, the process for establishing the write session is completed.

The following describes the process of step S133 shown in FIG. 28,namely, the process of discarding a write session with reference to theflowchart shown in FIG. 32. In step S191, the HD DB 91 initializesvariable M to 1. In step S192, the HD DB 91 determines whether or notvariable M is equal to or smaller than the number of entries S formingthe session managing information 181. If variable M is found equal to orsmaller than the number of entries S, the procedure goes to step S193.

In step S193, the HD DB 91 reads the value of the read/write sessionnumber storage area 184 of entry M forming the session managinginformation 181 to determine whether or not the value matches sessionnumber Z. If the value of the read/write session number storage area 184of entry M is found not matching session number Z, then the proceduregoes to step S194 to search for an entry in which the value of theread/write session number storage area 184 of entry M matches sessionnumber Z. In step S194, the HD DB 91 increments variable M by 1. Theprocedure returns to step S192 to repeat the above-mentioned processes.

If the value of the read/write session number storage area 184 of entryM is found matching session number Z in step S193, then the proceduregoes to step S195. Namely, only the entry in which session number Z isstored in the read/write session number storage area 184 is extractedand processed in steps 195 and on.

In step S195, the HD DB 91 frees the write cache area allocated in thebuffer 56 by entry M. In step S196, the HD DB 91 determines whether ornot the object state stored in the object state storage area 189 is“CREATE”. If the object state is found not “CREATE”, the procedure goesto step S197.

In step S197, the HD DB 91 stores 0s into the read/write session numberstorage area 184 and the write cache address storage area 191 of entryM. In step S198, the HD DB 91 updates the value of the access timestorage area 192 of entry M by the current time. The procedure goes tostep S194.

It should be noted that, if the object state stored in the object statestorage area 189 of entry M is found “CREATE” in step S196, then theprocedure goes to step S199. In step S199, the HD DB 91 stores 0s in theareas other than the read/write session number storage area 184 and thewrite cache address storage area 191 of entry M, namely stores 0s intothe object identifier storage area 183, read-only session number storageareas 185 through 188, the object state storage area 189, the read cacheaddress storage area 190, and the access time storage area 192. Then,the procedure goes to step S194.

Then, until variable M is found not equal to or smaller than the numberof entries S in step S192, the above-mentioned processes are repeated.If variable M is found not equal to or smaller than the number ofentries S, the write session discarding process comes to an end.

The following describes an object search process by use of an example inwhich an object having object identifier OID=X (hereafter referred to asobject X) with reference to the flowchart shown in FIG. 33. It should benoted that the session is assumed to have already been opened.

In step S201, the HD DB 91 gets entry M corresponding to object X. Theprocess of getting the entry for object X will be described below withreference to the flowchart shown in FIG. 34.

In step S211, the HD DB 91 initializes variable M to 1. In step S212,the HD DB 91 determines whether or not variable M is equal to or smallerthan the number of entries S forming the session managing information181. If variable M is determined equal to or smaller than the number ofentries S, then the procedure goes to step S213.

In step S213, the HD DB 91 reads the value of the object identifierstorage area 183 of entry M forming the session managing information 181to determine whether or not this value matches identifier OID=X ofobject X. If the value of the object identifier storage area 183 ofentry M is found not matching object identifier OID=X of object X, thenthe procedure goes to step S214 to search for an entry in which thevalue of the object identifier storage area 183 matches objectidentifier OID=X of object X.

In step S214, the HD DB 91 increments variable M by 1. The procedurereturns to step S212 to repeat the above-mentioned processes. If thevalue of the object identifier storage area 183 of entry M is foundmatching object identifier OID=X of object X in step S123, it indicatesthat entry M corresponding to object X has been retrieved, so that thisprocess comes to an end, the procedure returning to FIG. 33.

It should be noted that, in step S213, the decision in which the valueof the object identifier storage area 183 of entry M does not matchobject identifier OID=X of object X is repeated and variable M is notequal to or smaller than the number of entries S in step S212, theprocedure goes to step S215. In step S215, the HD DB 91 determines anerror, namely, the HD DB 91 has failed to get entry M for object X,thereby ending this process. The procedure returns to FIG. 33.

Returning to FIG. 33, if entry M for object X is retrieved in step S201,then the procedure goes to step S202. In step S202, because entry M forobject X has been retrieved, the HD DB 91 determines that object X is inthe buffer 56, thereby ending this process.

Conversely, if entry M for object X is not retrieved in step S201, theprocedure goes to step S203. In step S203, the HD DB 91 resolves objectidentifier OID=X of object X to get the chunk number, page number, andobject X type number t of the object recording area 122 in which theobject is recorded.

In step S204, the HD DB 91 reads the value of the size recording area167 corresponding to type number t from the object type recording area163 and, on the basis of the retrieved value, computes the number ofpages g necessary for recording object X.

In step S205, the HD DB 91 references the area information recordingarea 164 to determine whether or not g bits subsequent to column q, rowp are 1s. If the g bits subsequent to column q, row p of the areainformation recording area 164 are found is, then the procedure goes tostep S206. In step S206, the HD DB 91 sets read cache area c equivalentto the number of pages g to the buffer 56. In step S207, the HD DB 91copies the data recorded to the pages g subsequent to page p of chunk qin the object recording area 122 to the read cache area c of the buffer56.

In step S208, the HD DB 91 determines whether or not the objectidentifier recorded to a portion equivalent to the object identifierrecording area 201 of the data copied to the read cache area c matchesobject identifier X. If a match is found, it indicates that the datacached in the read cache area c is object X, so that the procedure goesto step S202.

If the object identifier recorded to the portion equivalent to theobject identifier recording area 201 of the data copied to the readcache area c is found not matching object identifier X, the proceduregoes to step S209. In step S209, the HD DB 91 determines that object Xdoes not exist in the object recording area 122 either, upon which thisprocess comes to an end.

The following describes an object X updating process with reference tothe flowchart shown in FIG. 35. The object X updating process hereindenotes the rewriting given data of object X.

In step S221, the HD DB 91 opens write session Z as with theabove-mentioned process of step S121 described with reference to FIG.29. In step S222, the HD DB 91 gets entry M for object X as with theabove-mentioned process of step S201 described with reference to FIG.34.

If entry M for object X is retrieved in the process of step S222, thenthe HD DB 91 determines that object X is cached in the read cache area cset to the buffer 56, upon which the procedure goes to step S223. Instep S223, the HD DB 91 determines whether or not the value of theread/write session number storage area 184 of entry M is 0. If the valueof the read/write session number storage area 184 of entry M is found 0,then the procedure goes to step S224.

In step S224, the HD DB 91 stores session number Z of the write sessionopened in step S221 into the read/write session number storage area 184of entry M. In step S225, the HD DB 91 resolves object identifier OID=Xof object X to get the chunk number, page number, and object X typenumber t of the object recording area 122 in which the object isrecorded.

In step S226, the HD DB 91 reads the value of the size recording area167 of the entry corresponding to type number t from the object typerecording area 163 and, on the basis of the retrieved value, computesthe number of pages g necessary for recording object X. In step S227,the HD DB 91 sets write cache area d equivalent to the number of pages gto the buffer 56. In step S228, the HD DB 91 stores the address of writecache area d into the write cache address storage area 191 of entry M.

In step S229, the HD DB 91 copies the data in the read cache area c inbuffer 56 to the write cache area d. In step S230, the HD DB 91 recordsgiven data of object X to be updated to the arbitrary data recordingarea 202 of object X copied to the write cache area d.

In step S232, the HD DB 91 waits for the inputting of signal Icorresponding to a user operation. In step S233, the HD DB 91 determineswhether or not signal I is commit, namely whether signal I establishesthe session update operation. If signal I is found commit, then, theprocedure goes to step S234. In step S234, the HD DB 91 establisheswrite session Z as with the process of step S132 described above withreference to FIG. 31. Conversely, if signal I is found not commit, theprocedure goes to step S235. In step S235, the HD DB 91 discards writesession Z as with the process of step S133 as described above withreference to FIG. 32.

It should be noted that, if the value of the read/write session numberstorage area 184 of entry M is found not 0 in step S223, it indicatesthat object X is being updated by a session other than session Z, sothat the procedure goes to step S235.

If, in step S222, entry M corresponding to object X is not retrieved,the procedure goes to step S236. In step S236, the HD DB 91 allocatesfree entry M as with the process of step S123 described above withreference to FIG. 30.

In step S237, the HD DB 91 resolves object identifier OID=X of object Xto get the chunk number, page number, and object X type number t of theobject recording area 122 in which the object is recorded. In step S238,the HD DB 91 reads the value of the size recording area 167 of the entrycorresponding to type number t from the object type recording area 163and, on the basis of the retrieved value, computes the number of pages gnecessary for recording object X. In step S239, the HD DB 91 sets theread cache area c and write cache area d corresponding to the number ofpages g to the buffer 56.

In step S240, the HD DB 91 stores the address of the read cache area cinto the read cache address storage area 190 of entry M, the address ofthe write cache area d into the write cache address storage area 191 ofentry M, and object identifier IOD=X of object X into the objectidentifier storage area 183 of entry M.

In step S241, the HD DB 91 copies the data of object X recorded up tothe number of pages g subsequent to page p of chunk q in the objectrecording area 122 to the read cache area c in the buffer 56. Theprocedure goes to step S229.

As described, the file X updating process copies the data of file X fromthe read cache area c to the write cache area d, rewrites the data offile X cached in the write cache area d, and records the rewritten datato the object recording area 122 by the session establishing operation.

The following describes a process of creating an object of a trackcorresponding, one to one, to the content data to be recorded to thefile recording area 121, namely an stream object having object typenumber t′ with reference to the flowchart shown in FIG. 36. It should benoted that object type number t′ includes a basic type number (in thisexample, basic object number 2) and an entry number.

In step S251, the HD DB 91 opens a write session as with the process ofstep S121 described above with reference to the flowchart of FIG. 29. Instep S252, in order to allocate the pages of a chunk to which the streamobject of object type number t′ is to be recorded, the HD DB 91 readsthe size of the object having object type number t′ from the sizerecording area 167 of entry t′ of the object type recording area 163 tocompute the number of pages of the chunk equivalent to the retrievedsize. Let the computed number of pages be g.

In step S253, the HD DB 91 allocates free entry M among a plurality ofentries forming the session managing information 181 as with the processof step S123 described above with reference to the flowchart of FIG. 30.In step S254, the HD DB 91 searches the area information recording area164 for a bit sequence in which g bits are continuously 0s. Let thestart position of the retrieved bit sequence in which g bits arecontinuously 0s be column q, row p. In step S255, the HD DB 91 storesobject identifier OID (q, p, t′) formed by chunk number q, page numberp, and object type number t′ as shown in FIG. 27 into the objectidentifier storage area 183 of allocated entry M. Further, the HD DB 91stores session number Z into the read/write session number storage area184 of entry M of the session managing information 181 and records“CREATE” indicative of creation to the object state storage area 189.

In step S256, the HD DB 91 allocates write cache area d equal to thenumber of pages g, which is the size of the stream object, into thebuffer 56. In step S257, the HD DB 91 stores the address of theallocated write cache area d in the buffer 56 into the write cacheaddress storage area 191 of entry M of the session managing information181.

In step S258, the HD DB 91 starts recording stream object X of objectbasic type 2 shown in FIG. 26B to the write cache area d allocated inthe buffer 56. To begin with, the HD DB 91 records object identifier OID(q, p, t′) to the object identifier recording area 201 of the writecache area d. In step S259, the HD DB 91 gets file identifier F (thesame value as the cluster number of the start cluster of a clustersequence to which the present content data are recorded) of the contentdata to be created by the HD FS 92, which corresponds to the streamobject. In step S260, the HD DB 91 records file identifier F to the fileidentifier recording area 203 of the write cache area d.

In step S261, the HD DB 91 starts getting given data (for example, thename of a stream object to be created) of a stream object to be created.In step S262, the HD DB 91 waits until the data retrieval is completed.It should be noted that, while the processes of steps S261 and S262 areperformed, a file of the content data having file identifier Fcorresponding to the stream object concerned is created and recorded tothe file recording area 121 by the HD FS 92.

In step S263, the HD DB 91 records the retrieved given data to thearbitrary data recording area 202 of the write cache area d.

In step S264, the HD DB 91 waits for the inputting of signal Icorresponding to a user operation. In step S265, the HD DB 91 determineswhether or not signal I is commit, namely, whether or not signal Iestablishes the session creation. If signal I is found commit, theprocedure goes to step S266. In step S266, the HD DB 91 establisheswrite session Z as with the process of step S132 described above withreference to FIG. 31.

Conversely, if signal I is found not commit, then the procedure goes tostep S267. In step S267, the HD DB 91 discards write session Z as withthe process of step S133 described above with reference to FIG. 32. Instep S268, the HD DB 91 requests the HD FS 92 to delete file F. Thus,the process of stream object creation is performed.

The following describes a process of searching for a stream objecthaving object identifier OID=X (hereafter referred to as stream objectX) with reference to the flowchart shown in FIG. 37. It should be notedthat the session has already been opened.

In step S271, the HD DB 91 executes the same process as the object Xsearch process described above with reference to FIG. 33. In step S272,the HD DB 91 gets the object type number included in object identifierOID=X of object X retrieved in the process of step S271. Let theretrieved object type number be t. Further, the HD DB 91 gets the objectbasic type number included in object type number t.

In step S273, the HD DB 91 determines whether or not the basic objecttype number of retrieved object X is basic object type 2. If the basicobject type number of the retrieved object X is found basic object type2, it indicates that the retrieved object X is a stream object, so thatthe procedure goes to step S274. In step S274, the HD DB 91 reads thefile identifier from the file identifier recording area 203 of theretrieved stream object X and supplies the retrieved file identifier tothe HD FS 92.

It should be noted that, if the object having object identifier OID=Xcould not be retrieved in step S271, the procedure goes to step S275.Further, if the basic object type number of the retrieved object X isfound not basic object type 2 in step S273, the procedure also goes tostep S275. In step S275, the HD DB 91 determines an error, namely thatthere is no stream object X, thereby ending the stream object searchprocess.

Now, referring to FIG. 38, there is shown a directory structure of theobjects recorded to the object recording area 122. The object recordingarea 122 is hierarchically formed by a root 211, folder list objects212, folder objects 213, album objects 214, and track objects 215 inthis order.

The HD DB 91 can create a plurality of folder objects below each folderlist object 212. The HD DB 91 can create a plurality of album objects214 below each folder object 213. The HD DB 91 can create a plurality oftrack objects 215 below each album object 214. Each track object 215corresponds to the content data for one piece of music.

Each folder object 213, album object 214, and track object 215 areobjects which are presented to the user when selecting music to beplayed back. The HD DB 91 can create information objects (for example, aCC (Content Control) object 216) other than the objects to be presentedto the user, below the root 211, the folder list object 212, or thefolder object 213.

If the folder object 213 is created below the folder list object 212,the HD DB 91 prohibits any other objects than the folder object 213 tobe created below the same folder list object 212. If the album object214 is created below the folder object 213, the HD DB 91 prohibits anyother objects than the album object 214 below the same folder object213. The HD DB 91 also prohibits any other objects than track object 215to be created below the album object 214.

Each of the above-mentioned objects is recorded in accordance with theabove-mentioned rules, so that a folder group 217, an album group 218,and a track group 219 are constructed in the object recording area 122.

The following describes the data format of each of the above-mentionedobjects.

FIG. 39 shows the data format of the folder list object 212. Because thefolder list object 212 belongs to basic object type 1 shown in FIG. 26A,it is formed by the object identifier recording area 201 and thearbitrary data recording area 202. To the object identifier recordingarea 201 of the folder list object 212, a 4-byte object identifier OIDis recorded.

To the arbitrary data recording area 202 of the folder list object 212,the maximum number MAX (4 bytes) of folder objects 213 that can becreated below this folder list object 212, the number of folder objects213 N (4 bytes) created below this folder list object 212, and4×100-byte Folder indicative of the matrix of IDs of folder objects 213created below this folder list-object 212 are recorded. The arbitrarydata recording area 202 of the folder list object 212 has a 612-bytereserved area.

FIG. 40 shows the data format of the folder object 213. Because thefolder object 213 belongs to basic object type 1 shown in FIG. 26A, itis formed by the object identifier recording area 201 and the arbitrarydata recording area 202. To the object identifier recording area 201 ofthe folder object 213, a 4-byte object identifier OID is recorded.

To the arbitrary data recording area 202 of the folder object 213, themaximum number MAX (4 bytes) of album objects 214 that can be createdbelow this folder object 213, the number of album objects 214 N (4bytes) created below this folder object 213, 4×200-byte Album indicativeof the matrix of IDs of album objects 214 created below this folderobject 213, and 36-byte Title indicative of the folder name of thisfolder object 213 are recorded. The arbitrary data recording area 202 ofthe folder object 213 has a 176-byte reserve area.

FIG. 41 shows the data format of the album object 214. Because the albumobject 214 belongs to basic object type 1 shown in FIG. 26A, it isformed by the object identifier recording area 201 and arbitrary datarecording area 202. To the object identifier recording area 201 of thealbum object 214, a 4-byte object identifier OID is recorded.

To the arbitrary data recording area 202 of the album object 214, themaximum number MAX (4 bytes) of track objects 215 that can be createdbelow this album object 214, the number N (4-bytes) of track objects 215created below this album object 214, 4×400-byte Track indicative of thematrix of IDs of track objects 215 created below this album object 214,516-byte Title indicative of the name of this album object 214, 260-byteArtist indicative of the artist name of this album object 214, 8-byteCreation Date indicative of the date of creation of this album object214, and 32-byte media key indicative of the media key of the music CD3, which is the source of this album object 214 are recorded. Thearbitrary data recording area 202 of the album object 214 has a1660-byte reserve area.

FIG. 42 shows the data format of the track object 215. Because the trackobject 215 belongs to basic object type 2 shown in FIG. 26B, it isformed by the object identifier recording area 201, the arbitrary datarecording area 202, and file identifier recording area 203. To theobject identifier recording area 201 of the track object 215, a 4-byteobject identifier OID is recorded. To the file identifier recording area203 of the track object 215, a 4-byte SOID indicative of the fileidentifier of the content data (recorded to the file recording area 121)corresponding on a one-to-one basis.

To the arbitrary data recording area 202 of the track object 215,516-byte Title indicative of the music title of this track object 215,260-byte Artist indicative of the artist name of this track object 215,8-byte Time indicative of the playback time of this album object 214,8-byte Last Access Date indicative of the date on which this trackobject 215 was accessed last, 4-byte play counter (PC) indicative of theplayback count of this track object 215, 8-byte Creation Date on whichthis track object 215 was created, and 12544-byte AC indicative of themusic attribute and playback control information (the information forcopyright protection) of the content data corresponding to this trackobject 215 are recorded. The arbitrary data recording area 202 of thetrack object 215 has a 980-byte reserved area.

FIG. 43 shows the details of the 12544-byte AC to be recorded to thearbitrary data recording area 202 of the track object 215. To the AC,8-byte Ckey indicative of a content key, 1-byte Codec indicative ofcodec identification value, 1-byte Coded Attr indicative of codecattribute, 1-byte LT indicative of playback limitation information,1-byte VLD indicative of validity check flag, 1-byte LCMLOGNUMindicative of the number of check-out destinations, 16-byte CDIindicative of codec dependency information, 20-byte CID indicative ofcontent serial number, 8-byte PBS indicative of playback permissionstart date, 8-byte PBE indicative of playback permission end date,1-byte XCC indicative of extended CC, 1-byte CT indicative of remainingplayback count, 1-byte CC indicative of content control information,1-byte CN indicative of remaining check-out count, 40-byte SRCindicative of source information, and 48×256-byte LCMLOG indicative ofinformation including check-out destination device ID and flag arerecorded.

Especially, in the 1-byte CC indicative of content control information,bit 1 from the MSB (Most Significant Bit) side is indicative of thepresence of copyright (0 copyrighted; 1=not copyrighted) Bit 2 from theMSB side is indicative of generation (0=original; 1=not original). Bits3 and 4 from the MSB side are not in use.

The meanings of the information indicated by bits 5 through 7 from theMSB side of CC are as follows. If 010 are recorded to bits 5 through 7from the MSB side of CC, it indicates the check-out is enabled (edit isenabled). If 011 are recorded to bits 5 through 7 of the MSB side of CC,it indicates that move is enabled (the edit on PD 5 is disabled). If 100are recorded to bits 5 through 7 of the MSB side of CC, it indicatesthat import is enabled (the edit on PD 5 is enabled). If 110 arerecorded to bits 5 through 7 from the MSB side of CC, it indicatesimport is enabled (the edit on the PD 5 is disabled).

FIG. 44 shows the data format of the content data corresponding to thetrack object 215 on a one-to-one basis. The content data are configuredby 16-KB AT3H indicative of the header of ATRAC3, 16-KB PRT indicativeof ATRAC3 part, and AT3SU-1 through AT3SU-N each being 16 KB longindicative of a sound unit sequence.

FIG. 45 shows the data format of the CC object 216. The CC object 216belongs to basic object type 2 shown in FIG. 26B. Therefore, the CCobject 216 is formed by the object identifier recording area 201 and thearbitrary data recording area 202. To the object identifier recordingarea 201 of the CC object 216, a 4-byte object identifier OID isrecorded.

The arbitrary data recording area 202 of the CC object 216 has a 16-bytereserved area. To the file identifier recording area 203 of the CCobject 216, a 4-byte SOID indicative of the file identifier of thecorresponding CC data (recorded to the file recording area 121) isrecorded.

FIG. 46 shows the CC data format to be recorded to the file recordingarea 121. The CC data includes 10-KB CatFolder, 200-KB CatAlbum, and600-KB CatTrack. CatFolder records the information indicative of theobject identifier OID of the folder object 213 corresponding to thefolder selected by the user. CatAlbum records the information indicativeof the object identifier OID of the album object 214 corresponding tothe album selected by the user. CatTrack records the informationindicative of the object identifier OID of the track object 215corresponding to the track selected by the user.

Consequently, if the user selects a track to be played at the time ofplayback for example, the object identifier OID of the track object 215corresponding to the track selected by the user is determined on thebasis of CatTrack of the CC data, the corresponding file identifier isretrieved from the determined track object 215, and the content data areread for playback.

The following describes the relationship between the data flow and thefirmware at the time of the execution of each function of the audioserver 1 with reference to FIGS. 47 through 56.

FIG. 47 shows the data flow at the time when CD ripping is executed. InCD ripping in which the music CD 3 is recorded at high speeds, thedigital audio data in the music CD 3 are read by the CD-ROM drive 57 ata speed of CAV8x to be buffered in the buffer 56 under the control ofthe CD MW 88. At the same time, under the control of the HD MW 82, thedigital audio data buffered in the buffer 56 are inputted in the WMscreen 60-2 for watermark detection. Next, under the control of the HDMW 82, the digital audio data buffered in the buffer 56 are encoded bythe encoder 59 at an average speed of 5× in the ATRAC3 technique forencryption, the resultant encrypted data are buffered in the buffer 56,and then the buffered encrypted data are transferred to the HDD 58 forrecording. It should be noted that, although not shown, during CDripping, the sound corresponding to the digital audio data underrecording is outputted from the speaker 2.

FIG. 48 shows the data flow at the time of CD recording. In CD recordingin which the music CD 3 is recorded while being played, the digitalaudio data in the music CD 3 are read by the CD-ROM drive 57 at a speedof CAV8x to be buffered in the buffer 56 under the control of the CD MW88. Then, under the control of the HD MW 82, the digital audio databuffered in the buffer 56 are encoded by the encoder 59 at an averagespeed of 5× in the ATRAC3 technique for encryption, the resultantencrypted data are buffered in the buffer 56, and then transferred tothe HDD 58 for recording. At the same time, under the control of the HDMW 82, the audio data buffered in the buffer 56 are supplied to the WMscreen 60-2 for watermark detection.

On the other hand, for monitor sounding, the buffered digital audio dataare temporarily recorded in a ring buffer 241 (FIG. 61) arranged in theHDD 58 and then read into the audio I/F 60-3 under the control of the HDMW 82. Next, under the control of the AIO MW 94, the digital audio dataare transferred to the AD/DA 62 to be converted in analog data, and thecorresponding sound is output from the speaker 2.

The details of CD ripping and CD recording will be described later withreference to FIGS. 57 through 70B.

FIG. 49 shows the data flow at the time of HD recording for digitalinput. In HD recording in which digital input is encoded for recordingon the HDD 58, the digital audio data inputted from the AUX In terminal31 are supplied to the encoder 59 via the signal processor 60 under thecontrol of the AIO MW 94. Next, under the control of the HD MW 82, thedigital audio data are encoded by the encoder 59 for encryption on thebasis of the ATRAC3 technique and the encrypted data are transferred tothe buffer 56 and then to the HDD 58 for recording. Further, under thecontrol of the HD MW 82, the watermark is detected by the WM screen 60-2of the signal processor 60. In addition, under the control of the AIO MW94, the digital audio data are transferred to the D/A 62 by the audioI/F 60-3 of the signal processor 60 to be converted into analog data,which are outputted from the speaker 2.

FIG. 50 shows the data flow at the time of HD recording for analoginput. In HD recording in which analog input is encoded to be recordedon the HDD 58, the analog audio data inputted from the AUX In terminal31 are digitized by the A/D 62 to be supplied to the encoder 59 underthe control of the AIO MW 94. Next, under the control of the HD MW 82,the digital audio data are encoded by the encoder 59 for encryption onthe basis of the ATRAC3 technique and the encrypted data are transferredto the buffer 56 and then to the HDD 58 for recording. Further, underthe control of HD MW 82, the watermark is detected by the WM screen 60-2from the digital output of the A/D 62. Then, under the control of theAIO MW 94, the analog audio data inputted from the AUX In terminal 31are outputted from the speaker 2.

FIG. 51 shows the data flow at the time of HD play. In HD play in whichencoded data recorded to the HDD 58 are played back, the encoded dataread from the HDD 58 are buffered in the buffer 56 and then decryptedand decoded by the decoder 59 under the control of the HD MW 82. Theresultant digital audio data are buffered in the buffer 56 and thentransferred to the audio I/F 60-3. Next, the digital audio data aretransferred to the D/A 62 by the audio I/F 60-3 to be converted intoanalog data, which are outputted from the speaker 2.

FIG. 52 shows the data flow at the time of CD play. In CD play in whichthe music CD 3 is played, the digital audio data stored in the music CD3 are read by the CD-ROM drive 57 and buffered in the buffer 56 to betransferred to the audio I/F 60-3 under the control of the CD MW 88.Next, under the control of the AIO MW 94, the digital audio data aretransferred to the D/A 62 by the audio I/F 60-3 to be converted intoanalog data, which are outputted from the speaker 2.

FIGS. 53A and 53B show each the data flow at the time of MS play. In theMS play in which the encoded data stored in the MS 4 are played, theencoded data stored in the MS 4 are supplied to the MGMS I/F 60-1 to becross-certified and then decrypted and the resultant data are decoded bya decoder incorporated in the signal processor 60 under the control ofthe MS MW 89 as shown in FIG. 53A. Next, under the control of the AIO MW94, the decoded digital audio data obtained by decoding are transferredto the D/A 62 by the audio I/F 60-3 to be converted into analog data,which are outputted from the speaker 2.

As shown in FIG. 53B, the encoded data area read from the MS 4 to besupplied to the MGMS I/F 60-1 to be cross-certified and then decryptedunder the control of the MS MW 89. The decrypted encoded data arebuffered in the buffer 56 and decoded by the decoder 59, the resultantdigital audio data being outputted to the D/A 62 via the buffer 56.Next, under the control of the AIO MW 94, the audio data converted intoanalog data by the D/A 62 are outputted from the speaker 2.

FIG. 54 shows the data flow at the time of MS check-out/move-out. In theMS check-out in which the encoded data stored in the HDD 58 are copiedto the MS 4 and in the MS move-out in which the encoded data stored inthe HDD 58 are moved to the MS 4, the encoded data read from the HDD 58are buffered in the buffer 56 under the control of the HD MW 82. Next,under the control of the MS MW 89, the buffered encoded data aretransferred to the MGMS I/F 60-1 to be recorded to the MS 4. It shouldbe noted that the check-out and move-out operations will be detailedlater.

FIG. 55 shows the data flow at the time of MS import/move-in. In the MSimport/move-in in which the encoded data stored in the MS 4 are moved tothe HDD 58, the encoded data stored in the MS 4 are transferred to thebuffer 56 via the MGMS I/F 60-1 under the control of the MS MW 89. Next,under the control of the HD MW 82, the buffered encoded data aretransferred to the HDD 58 for recording. It should be noted that theimport/move-in operations will be detailed later.

FIG. 56 shows the data flow at the time of PD check-out. In the PDcheck-out in which the encoded data stored in the HDD 58 are copied tothe PD 5, the encoded data read from the HDD 58 are buffered in thebuffer 56 and then decrypted by the encoder/decoder 59 and encryptedagain for the PD 5 to be buffered in the buffer 56 under the control ofthe HD MW 82. Next, under the control of the PD MW 90, the bufferedencoded data are recorded to the PD 5 via the USB host controller 54 andthe USB connector 43.

The following describes the details of CD ripping and CD recording withreference to FIGS. 57 through 70B. CD ripping is performed when the userpresses the high-speed recording button 24. The CD recording isperformed when the user presses the recording button 23.

The following describes the difference between CD ripping and CDrecording with reference to FIGS. 57 and 58. The upper portion of FIG.57 shows the monitor sound output period in CD ripping. The lowerportion of FIG. 57 shows the period of recording process (recordingafter encoding) in CD ripping. The upper portion of FIG. 58 shows theperiod of monitor sound output in CD recording. The lower portion ofFIG. 58 shows the period of recording process (encoding and thenrecording) in CD recording.

As clearly seen from the comparison between FIG. 57 and FIG. 58, CDripping and CD recording are the same in the total time necessary forrecording process. Namely, the process in which the audio data (PCMdata) stored in the music CD 3 are recorded to the HDD 58 by encodingthe data on the basis of the ATRAC3 technique is performed at an averagespeed of 5× relative to the playback speed of the audio data.

For example, if the music CD 3 storing six pieces of music each taking10 minutes for its play, totaling 60 minutes, is recorded by CD rippingor CD recording, these pieces of music are sequentially recorded takingabout two minutes each.

The difference between CD ripping and CD recording lies in the period ofmonitor sound output.

In the case of CD ripping, monitor sound is outputted only in a periodin which the corresponding audio data are being recorded. In theabove-mentioned example of the music CD 3, from the beginning of thefirst piece of music, sound for about two minutes is outputted at anormal playback speed, from the beginning of the second piece of music,sound for about two minutes is outputted at a normal speed, and,subsequently, from the beginning of each of the remaining pieces ofmusic, sound for about two minutes is outputted at a normal speed.Therefore, monitor sound output ends upon the end of the recordingprocess.

In the case of CD recording, monitor sound is outputted regardless ofthe progress of the recording of the corresponding audio data. In theabove-mentioned example of the music CD 3, all sound of the first pieceof music is outputted at a normal playback speed, all sound of thesecond piece of music is outputted at a normal playback speed, and,subsequently, all sound of each of the remaining pieces of music isoutputted at a normal playback speed. Therefore, even when the recordingprocess ends, the monitor sound output of the corresponding audio datais continued until the end of the last sixth piece of music.

It should be noted that CD ripping and CD recording may be switchedbetween as required in the course of the process.

FIG. 59 shows a state of the buffer 56 at the time when CD ripping or CDrecording is performed. The buffer 56 has a PCM data reading buffer 231for buffering the audio data (PCM data) read from the music CD 3 beforeencoding and a encoded data buffer 232 for buffering the data encodedand encrypted by the encoder/decoder 59.

FIG. 60 shows the state transitions of the PCM data reading buffer 231and the encoded data buffer 232 arranged in the buffer 56 and a PCM dataplayback buffer 251 arranged in the audio I/F 60-3. Each of the PCM datareading buffer 231, the encoded data buffer 232, and PCM data playbackbuffer 251 is one of the transition states, the initial write enabledstate, the writing state which is entered when data writing starts, theread enabled state which is entered when data writing ends, and thereading state which is entered when data reading starts. It should benoted that, when data reading ends from the reading state, the statereturns to the write enabled state.

FIG. 61 shows the structure of the ring buffer 241 arranged in the HDD58 for buffering the PCM data for monitor sound output when CD rippingor CD recording is performed.

The ring buffer 241 having a predetermined capacity (address 0 throughaddress max for the convenience of description) has a read pointer 242for pointing a read start address and a write pointer 243 for pointing awrite start address. The ring buffer 241 is divided into a read enabledarea 244 from the address pointed by the read pointer 242 to the addresspointed by the write pointer 243 in the forward direction and a writeenabled area 245 from the address pointed by the write pointer 243 tothe address pointed by the read pointer 242 in the forward direction.The capacity of the read enabled area 244 is referred to as a readmargin. The capacity of the write enabled area is referred to as a writemargin.

FIG. 62 shows the data flow between the buffers at the time of CDripping and CD recording. The PCM data stored in the music CD 3 are readby the CD-ROM drive 57 to be buffered in the PCM data reading buffer 231arranged in the buffer 56. The PCM data buffered in the PCM data readingbuffer 231 are transferred to the encoder/decoder 59 to be encoded andencrypted. The resultant encoded data are buffered in the encoded databuffer 232 arranged in the buffer 56. The encoded data buffered in theencoded data buffer 232 are transferred to the HDD 58 to be recorded tothe file recording area 121.

On the other hand, the PCM data buffered in the PCM data reading buffer231 are transferred to the HDD 58 to be buffered in the ring buffer 241arranged in the HDD 58. The PCM data buffered in the ring buffer 241 aretransferred to the PCM data playback buffer 251 incorporated in theaudio I/F 60-3 to be buffered and then transferred to the AD/DA 62 to beconverted into analog data, which are outputted from the speaker 2.

The following describes a recording speed setting process associatedwith CD ripping and CD recording with reference to the flowchart shownin FIG. 63. This recording speed setting process is repetitivelyexecuted while the music CD 3 is selected as a sound source, namelywhile the music CD 3 is loaded on the CD-ROM drive 57 and the CD isselected by operating the function button 12.

In step S281, the input handle middleware 97 starts monitoring user'soperation on the various buttons. In step S282, the input handlemiddleware 97 waits until a user's operation is performed on the variousbuttons. If a user's operation on the various buttons is determined, theinformation thereof is transmitted to the main APP 76. The main APP 76determines whether or not the operation is an operation performed on therecording button 23. If the operation is found an operation performed onthe recording button 23, then the procedure goes to step S283.

In step S283, the main APP 76 notifies the HD APP 77 of the operation ofthe recording button 23. The HD APP 77 transmits the information thatthe recording button 23 has been operated to the CD RIPPING 84 of the HDMW 82. The CD RIPPING 84 turns off the high-speed recording flagarranged by itself in the SDRAM 53 for example. The procedure returns tostep S281.

If a user's operation on the various buttons is determined and thisoperation is found not on the recording button 23 in the S282, theprocedure goes to step S284. In step S284, the main APP 76 determineswhether or not the user's operation is on the high-speed recordingbutton 24. If the operation is found an operation on the high-speedrecording button 24, the procedure goes to step S285.

In step S285, the main APP 76 notifies the HD APP 77 of the operation ofthe high-speed recording button 24. The HD APP 77 transmits theinformation that the high-speed recording button 24 has been operated tothe CD RIPPING 84 of the HD MW 82. The CD RIPPING 84 turns on thehigh-speed recording flag, upon which the procedure returns to stepS281.

If the operation is found not the operation on the high-speed recordingbutton 24 in step S284, then the procedure returns to step S281.

By the above-mentioned recording speed setting process, when thehigh-speed recording button 24 is operated and the high-speed recordingflag is turned on, the CD ripping as shown in FIG. 57 is executed.Conversely, when the recording button 23 is operated and the high-speedrecording flag is turned off, the CD recording as shown in FIG. 58 isexecuted. It should be noted that the switching from CD ripping to CDrecording and vice versa may be performed any time in accordance withthe user's button-operation.

The following describes a CD recording process with reference to theflowchart shown in FIG. 64. This CD recording process is a process whichis controlled by the CD RIPPING 84 included in the HD MW 82, whichstarts when the music CD is loaded, and the function button 12 ispressed to set the sound source to the CD and then the recording button23 or the high-speed button 24 is operated.

In step S291, the user selects a piece of music to be recorded from themusic CD 3 during the recording pause state set by operating therecording button 23 or the high-speed button 24. To be more specific,the user operates a cursor button 17 to select a piece of music from thepieces of music recorded to the music CD 3 and establishes the selectionby operating the enter button 20. By repeating these operations, theuser selects all pieces of music to be recorded. It should be notedthat, if no music selecting operation is performed, it is assumed thatall pieces of music recorded to the music CD 3 be selected.

When the music selection has been completed, the user operates theplay/pause button 26. The procedure goes to step S292.

In step S292, the CD RIPPING 84 initializes the ring buffer informationformed by the read start address and the like pointed by the readpointer 242 set to the ring buffer 241. The following describes thisring buffer information initializing process with reference to theflowchart shown in FIG. 65. In step S301, the CD RIPPING 84 sets theread start address pointed by the read pointer 242 and the write startaddress pointed by write pointer 243 to address 0 of the ring buffer241. In addition, the CD RIPPING 84 sets the read margin of the ringbuffer 241 to 0 and the write margin to the maximum value max. Thus, thering buffer information initializing process is performed.

Returning to FIG. 64, in step S293, the CD RIPPING 84 sequentiallyselects the pieces of music selected in step S291 and executes therecording of one piece of music. The following describes the recordingprocess for recording one piece of music with reference to the flowchartshown in FIG. 66. In step S311, the CD RIPPING 84 requests the CD MW 88to buffer the PCM data of the piece of music to be recorded to the musicCD 3 into the PCM data reading buffer 231 in the write enabled state inunits of predetermined data amount (for example, in units of twoseconds). When the PCM data of a predetermined data amount has beenwritten (buffered), the state of the PCM data reading buffer 231 movesto the read enabled state.

In step S312, the CD RIPPING 84 causes the encoder/decoder 59 to encode(encode and then encrypt) the PCM data of a predetermined amountbuffered in the PCM data reading buffer 231. When the reading of the PCMdata of a predetermined data amount from the PCM data reading buffer 231has been completed, the state of the PCM data reading buffer 231 movesto the write enabled state.

Also, the CD RIPPING 84 starts a monitor sound output process. Themonitor sound output process will be described later with reference toFIG. 67.

In step S313, the CD RIPPING 84 buffers the encoded data of apredetermined amount obtained by encoding into the encoded data buffer232 in the write enabled state in the buffer 56. When the writing(buffering) of the encoded data of a predetermined amount (for example,equivalent to two seconds) has been completed, the state of the encodeddata buffer 232 moves to the read enabled state.

In step S314, the CD RIPPING 84 records the encoded data of apredetermined amount buffered in the encoded data buffer 232 to the filerecording area 121 of the HDD 58. It should be noted that the processfor recording the encoded data to the file recording area 121 in unitsof a predetermined amount is equivalent to the above-mentioned filecreating process described with reference to FIG. 14. The objectcreating process described with reference to FIG. 28 is also performed.

In step S315, the CD RIPPING 84 determines whether or not the encodeddata for one piece of music have been recorded. If the encoded data forone piece of music are found not recorded, then the procedure returns tostep S311 to repeat the above-mentioned processes. Then, if the encodeddata for one piece of music have been recorded in step S315, therecording process for recording one piece of music comes to an end.

After executing the recording process for one piece of music asdescribed above, the procedure returns to step S294 shown in FIG. 64. Instep S294, the CD RIPPING 84 determines whether or not all pieces ofmusic selected in step S291 have been recorded. If all selected piecesof music are found not recorded, the procedure returns to step S293 torecord the next piece of music.

Next, if all selected pieces of music are found recorded in step S294,this CD recording process comes to an end.

The following describes the monitor sound output process started in stepS312 with reference to the flowchart shown in FIG. 67. In step S321, theCD RIPPING 84 determines whether or not the high-speed recording flag ison. If the high-speed recording flag is found on, then the proceduregoes to step 322.

In step S322, the CD RIPPING 84 determines whether or not the recordingprocess for one piece of music of the corresponding PCM data has ended.If the recording process for one piece of music of the corresponding PCMdata is found not ended, the procedure goes to step S323 to outputmonitor sound of the PCM data for which the recording of one piece ofmusic is being executed.

In step S323, the CD RIPPING 84 starts writing the PCM data buffered inthe PCM data reading buffer 231 to the ring buffer 241. Without waitingfor the end of the process in step S323, the CD RIPPING 84 startsreading the PCM data recorded to the ring buffer 241 in step S324.

The following describes the writing process for writing to the ringbuffer 241 in step S323 with reference to the flowchart shown in FIG.68.

In step S331, the CD RIPPING 84 determines whether or not the high-speedrecording flag is on. If the high-speed recording flag is found on, theprocedure goes to step S332. In step S332, the CD RIPPING 84 executesthe buffer information initializing process described with reference toFIG. 65.

In step S333, the CD RIPPING 84 starts writing the PCM data recorded tothe PCM data reading buffer 231 to the write enabled area 245 subsequentto the write start address pointed by the write pointer 243 of the ringbuffer information. In step S334, the CD RIPPING 84 increments in theforward direction the write start address value pointed by the writepointer 243 included in the ring buffer information by the amount of thePCM data written in step S333, thereby accordingly updating the writemargin value and the read margin value.

It should be noted that, if the high-speed recording flag is found noton in step S331, the procedure goes to step S335. In step S335, the CDRIPPING 84 determines whether or not the size of the PCM data recordedto the PCM data reading buffer 231 is equal to or smaller than the writemargin of the ring buffer 241 by referencing the ring bufferinformation. If the size of the PCM data recorded to the PCM datareading buffer 231 is found equal to or smaller than the write margin ofthe ring buffer 241, then the procedure goes to step S333.

It should be noted that, if the size of the PCM data recorded to the PCMdata reading buffer 231 is found not equal to or smaller than the writemargin of the ring buffer 241 in step S335, then the procedure returnsto step S331 to repeat the processes of step S331 and step S335 untilthe high-speed recording flag is found on in step S331 by changing therecording speed settings by the user or the size of the PCM datarecorded to the PCM data reading buffer 231 is found not equal to orsmaller than the write margin of the ring buffer 241 in step S335 due tothe increase in the write margin of the ring buffer 241. Thus, theprocess of writing to the ring buffer 241 is performed.

The following describes the process of reading from the ring buffer 241in step S324 with reference to the flowchart shown in FIG. 69. In stepS341, the CD RIPPING 84 determines whether or not the PCM data playbackbuffer 251 incorporated in the audio I/F 60-3 is in the write enabledstate and waits until the PCM data playback buffer is in the writeenabled state. If the PCM data playback buffer is found in the writeenabled state, then the procedure goes to step S342.

In step S342, the CD RIPPING 84 reads the PCM data recorded to the readenabled area 244 of the ring buffer 241 in accordance with the readstart address pointed by the read pointer 242 of the ring buffer 241,and writes the PCM data to the PCM data playback buffer 251.

In step S343, the CD RIPPING 84 increments in the forward direction thevalue of the read start address pointed by the read pointer 242 includedin the ring buffer information by the amount of the PDM data read instep S342, thereby accordingly updating the write margin value and theread margin value.

In step S344, the CD RIPPING 84 moves the state of the PCM data playbackbuffer 251 to the read enabled state. Thus, the process of reading fromthe ring buffer 241 is performed.

Returning to FIG. 67, the AIO MW 94 outputs the PCM data buffered in thePCM data playback buffer 251 to the AD/DA 62 in step S325. The AD/DA 62starts reproducing the inputted PCM data to output the correspondingsound from the speaker 2.

In step S326, the CD RIPPING 84 determines whether or not the PCM datafor one piece of music has been played back. If the PCM data for onepiece of music are found not completely played back, the procedurereturns to step S321 to repeat the above-mentioned processes. If the PCMdata for one piece of data are found not completely played back, themonitor sound output process comes to an end.

It should be noted that, if the PCM data for one piece of music is foundcompletely recorded in step S322, this monitor sound output process isimmediately discontinued. Thus, the CD recording process is performed.

It should be noted that, in the course of the CD recording process, CDripping may be switched to CD recording and vice versa in accordancewith the user's operation on the recording button 23 or the high-speedrecording button 24.

The following describes display examples to be displayed on the display15 when CD ripping is performed, with reference to FIGS. 70A and 70B.FIG. 70A show an example of information associated with recordingsetting which is displayed immediately before starting recording. Atthis moment, display areas 261 through 267 are arranged on the display15. In this display example, the display area 261 displays theinformation indicative of recording source and recording destination.The display area 262 displays that the information associated withrecording setting is displayed. The display area 263 displays a foldername indicative of storage location. The display area 264 displays thealbum name and artist name of the album to be recorded. The display area265 displays the bit rate to be used at the time of recording. Thedisplay area 266 displays the recording level to be used at the time ofrecording. The display area 267 displays the information that therecording starts when the play/pause button 26 is pressed. The recordinglevel at the time of recording is displayed.

FIG. 70B shows a display example which is displayed during recording. Atthis moment, display areas 271 through 278 are arranged on the display15. In this display example, the display are 271 displays theinformation indicative of recording source and recording destination.The display area 272 blinks a character string “In high-speed recording”indicative that CD ripping is being executed. The display area 273displays the album name and artist name of music being recorded. Thedisplay area 274 displays the music number in the music CD 3 of themusic being recorded. The display area 275 displays the playback elapsedtime of the music being recorded. The display area 276 displays theremaining playback time of the music CD 3. The display area 277 displaysa progress bar 279 variable in length in accordance with the recordingprogress relative to the total number of pieces of music to be recorded.The display area 278 displays the total number of pieces of music to berecorded and the number of pieces of music already recorded and duringrecording.

For example, if CD ripping is being executed on all pieces music in analbum of which playback time is 60 minutes, the length of the progressbar 279 displayed in the display area 277 becomes longer from the startof recording and extends up to the full length of the display area 277in about 12 minutes because the recording is executed at the speed ofabout 5×.

It should be noted that the length of the progress bar 279 in thedisplay area 277 may be elongated in proportion to the music playbackelapsed time rather than the recording progress.

The following describes a method of reproducing the content datarecorded to the HDD 58 with reference to FIGS. 71 through 77. Asdescribed, the audio server 1 encodes the music recorded to the music CD3 and records the content data as a file to the HDD 58. In the case ofspecifying particular music to be played back, the user specifies thehierarchically arranged objects of folder, album, and track.

Specifying the entire HDD, a given folder, or a given album as aplayback area allows the specification of a plurality of music piecescollectively as the music pieces to be recorded. The playback of musicis realized by decoding the content data corresponding to the tracksincluded in the play list to be created on the basis of the specifiedplayback area.

FIG. 71 shows an exemplary playback area. If the entire HDD enclosed bydashed lines 281 is specified as a playback area, all track numbers inthe HDD 58 are registered in the play list as shown in FIG. 72.

If a my select folder F1 enclosed by dashed lines 282 is specified asthe playback area, the album numbers of all albums belonging to the myselect folder F1 are registered in the play list as shown in FIG. 73.

If an album A1 of the my select folder F1 enclosed by dashed lines 283is specified as the playback area, the track numbers of all tracksbelonging to the album A1 of the my select folder F1 are registered inthe play list as shown in FIG. 74.

If a track T1 of the album A1 belonging to a temporary folder F2 isspecified as the music to be played back, the track T1 of the album A1belonging to the temporary folder F2 is registered in the play listshown in FIG. 75.

The following describes a process of creating the play listcorresponding to the specified playback area with reference to theflowchart shown in FIG. 76.

This play list creating process is controlled by the HD PLAY 85 includedin the HD MW 82 and starts when the function button 12 is operated toset the sound source to the HDD.

In step S351, the HD PLAY 85 determines whether or not the layer of theobject indicative of the playback area selected by the user is theentire HDD. If the layer of the selected object is found not the entireHDD, then the procedure goes to step S352. It should be noted that theuser selects a playback area by operating a playback area switchingbutton (not shown) arranged on the remote controller 7 or by operatingthe cursor button 17, the enter button 20, and the menu/cancel button 21arranged on the cover 40 in a predetermined sequence.

In step S352, the HD PLAY 85 determines whether or not the layer of theobject selected by the user is a folder. If the layer of the objectselected by the user is found not a folder, then the procedure goes tostep S353.

In step S353, the HD PLAY 85 determines that the layer of the objectselected by the user is an album and the procedure goes to step S354.

In step S354, the HD PLAY 85 determines whether or not the play/pausebutton 26 has been operated. If the play/pause button 26 is foundoperated, the procedure goes to step S355. In step S355, the HD PLAY 85determines whether or not the play list belonging to the layer of theselected object has already been created. If the play list is found notcreated, the procedure goes to step S356. If the play list is foundalready created, step S356 is skipped.

In step S356, the HD PLAY 85 creates a play list corresponding to thelayer of the selected object.

It should be noted that, the play/pause button 26 is found not operatedin step S354, then the procedure returns to step S351 to repeat theabove-mentioned processes.

It should be noted that, if the layer of the selected object is foundthe entire HDD in step S351 or the layer of the selected object is founda folder in step S352, then the procedure goes to step S354. Thus, theplay list creating process is performed.

It should be noted that a plurality of play lists corresponding tovarious supposed playback areas may be created beforehand and recordedat a predetermined location and a corresponding play list may be readfrom among these play lists when the a play list is selected by theuser.

The following describes a playback process to be executed after the endof the above-mentioned play list creating process, taking the examplewhere the play mode is set to the all music repeat, with reference tothe flowchart shown in FIG. 77.

In step S361, the HD PLAY 85 determines whether or not the end ofplayback has been instructed by operating the stop button 25. If the endof the playback is found not instructed, the procedure goes to stepS362. In step S362, the HD PLAY 85 sequentially specifies all tracksincluded in the play list each as a playback track.

In step S363, the HD PLAY 85 plays back the content data correspondingto each specified playback track. To be more specific, a track objectcorresponding to the playback track is identified on the basis of CCdata, the file identifier of the corresponding content data isidentified on the basis of the value of the file identifier recordingarea 203 of the identified track object, and the content data are readon the basis of the identified file identifier (=the cluster number ofthe file recording area 121). Next, the retrieved content data aredecoded and outputted.

When the playback of the content data corresponding to the playbacktrack ends, the procedure returns to step S361 to repeat theabove-mentioned processes. Then, in step S361, if the end of theplayback is determined instructed upon operation of the stop button 25,the playback process with the playback mode being all music repeat ends.

It should be noted that, in the playback modes other than the all musicrepeat, only the method of specifying playback area and playback trackdiffers from that of the all music repeat, so that the processes are thesame between these modes.

The following describes a process of moving out the content datarecorded to the HDD 58 of the audio server 1 to the MS 4 with referenceto FIGS. 78 through 81.

The process of moving out the content data recorded to the HDD 58 to theMS 4 includes copying the content data from the HDD 58 to the MS 4 anddeletes the copied content data from the HDD 58.

The following describes the move-out process with reference to theflowchart shown in FIG. 78. It should be noted that the move-out processis controlled by the MS MW 89.

This move-out process starts when the user displays the menu byoperating the menu/cancel button 21, selects “edit” by operating thecursor button 17, displays the edit menu by operating the enter button20, selects “move out” by operating the cursor button 17, operates theenter button 20, selects the track to be moved out by operating thecursor button 17 and the select button 18, displays the list of tracksto be moved out by operation the enter key 20, and then operating theenter key 20 with the MS 4 loaded in the MS slot 45.

In step S371, the MS MW 89 requests the C IN/C OUT 87 to copy thecontent data recorded to the HDD 58 to be moved out as rightless data(playback disabled data) to the MS 4. It should be noted that, toprovide rightless data, a rightful/rightless flag included in theattribute information of the content data is turned off. Namely, theattribute information indicative of right invalidity and the contentdata are copied to the MS 4.

In step S372, the C IN/C OUT 87 generates a move-out log informationindicative that the move-out process has started and records thegenerated log information to the HDD 58. The move-out log informationincludes the information for identifying the track to be moved out. Instep S373, the C IN/C OUT 87 turns off the flag indicative whether thecontent data recorded to the HDD 58 have the right or not to render thecontent data in the HDD 58 rightless.

In step S374, the MS MW 89 turns on the flag indicative whether thecontent data copied to the MS 4 have the right or not to render thecontent data in the MS 4 rightful.

In step S375, the C IN/C OUT 87 deletes the content data from the HDD58. In step S376, the C IN/C OUT 87 deletes the move-out log informationgenerated in the process of step S372.

The above-mentioned processes of steps S371 through S376 are themove-out processes for the content data corresponding to one track.These processes of steps S371 through S376 are repeated for each of theselected tracks.

It should be noted that, if a move-out process is discontinued due topower outage for example during the process is on, a restore process forrestoring the discontinued process is executed after the power isresumed. The restore process will be described later with reference toFIGS. 86 through 88.

FIG. 79 shows the state transitions of a move-out process. State 1 isthe state before the stating of a move-out process. Namely, in thisstate, content data are recorded to the HDD 58 of the audio server 1 andthese content data have the right.

State 2 is a state after the execution of the process of step S371.Namely, in state 2, the content data have been copied from the HDD 58 tothe MS 4, resulting in the recording of the content data to both the HDD58 and the MS 4 and the content data in the HDD 58 have the right whilethe content data in the MS 4 have no right.

State 3 is a state after the execution of the process of step S373.Namely, in state 3, content data are recorded to both the HDD 58 and theMS 4 and the content data in the HDD 58 and the content data in MS 4have no right.

State 4 is a state after the execution of the process of step S374.Namely, in state 4, content data are recorded to both the HDD 58 and theMS 4 and the content data on the HDD 58 has no right while the contentdata in the MS 4 has the right.

State 5 is a state after the execution of the process of step S375.Namely, in state 5, the content data recorded to the HDD 58 have beendeleted and therefore only the MS 4 records the content data, which havethe right.

FIG. 80 shows a display example on the display 15 at the time ofselecting tracks to be moved out. The display 15 shows only the piecesof music that can be moved out.

FIG. 81 show a display example on the display 15 during a move-outprocess. A display area 291 on the display 15 blinks a character string“Move out” indicative that a move-out process is being executed. A checkmarker 292 is displays by each moved out track. A display area 293displays the information indicative of the progress of the move-outprocess (the number of tracks being moved out or already moved out/thetotal number of tracks to be moved out).

The following describes a process of moving in the content data recordedto the MS 4 to the HDD 58 of the audio server 1 with reference to FIGS.82 through 81.

The process of moving in the content data recorded to the MS 4 to theHDD 58 denotes a sequence of processes in which the content datarecorded to the MS 4 are copied to the HDD 58 and then the content datarecorded to the MS 4 are deleted.

The following describes this move-in process with reference to theflowchart shown in FIG. 82. It should be noted that the moving-inprocess is controlled by the MS MW 89.

This move-in process starts when the user displays a menu by operatingthe menu/cancel button 21, selects “edit” by operating the cursor button17, displays the edit menu by operating the enter button 20, selects“move in” by operating the cursor button 17 and then operates the enterbutton 20, selects the content data to be moved in from the content datarecorded to the MS 4 by operating the cursor button 17 and the selectbutton 18, displays the list of content data to be moved in by operatingthe enter key 20, and, after operating the enter key 20, operates theplay/pause button 26 with the MS 4 loaded in the MS slot 45.

In step S381, the MS MW 89 requests the C IN/C OUT 87 to generatemove-in log information indicative of the starting of a move-in processand record the generated log information to the HDD 58. The move-in loginformation includes the information for identifying the content data tobe moved in.

In step S382, the C IN/C OUT 87 copies the content data to be moved infrom the MS 4 to the HDD 58 as the data having no right. In step S383,the MS MW 89 turns off the flag indicative whether the content datarecorded to the MS 4 have the right or not to render the content data inthe MS 4 rightless.

In step S384, the C IN/C OUT 87 turns on the flag indicative whether thecontent data copied to the HDD 58 have the right or not to render thecontent data in the HDD 58 rightful.

In step S385, the C IN/C OUT 87 requests the MS MW 89 to delete thecontent data from the MS 4. In step S386, the C IN/C OUT 87 deletes themove-in log information generated in the process of step S382.

The above-mentioned processes of steps S381 through S386 are the move-inprocess for the content data corresponding to one track. The processesin steps S381 through S386 are repeated for each of the selected tracks.

It should be noted that, if a move-in process is discontinued due topower outage for example during the process is on, a restore process forrestoring the discontinued process is executed after the power isresumed.

FIG. 83 shows the state transitions of a move-in process. State 11 is astate before a move-in process starts. Namely, in state 11, content dataare recorded to the MS 4 and the content data in the MS 4 have theright.

State 12 is a state after the execution of the process of step S382.Namely, in state 12, by copying the content data from the MS 4 to theHDD 58, the content data are recorded to both the MS 4 and the HDD 58and the content data in the MS 4 are rightful while the content data inthe HDD 58 are rightless.

State 13 is a state after the execution of the process of step S383.Namely, the content data are recorded to both the MS 4 and the HDD 58and the content data in the MS 4 and the content data in the HDD 58 areboth rightless.

State 14 is a state after the execution of the process of step S384.Namely, in state 14, the content data are recorded to both the MS 4 andthe HDD 58 and the content data in the MS 4 are rightless while thecontent data in the HDD 58 are rightful.

State 15 is a state after the execution of the process of step S385.Namely, by deleting the content data from the MS 4, the content data arerecorded only to the HDD 58 and therefore the content data in the HDD 58are rightful.

FIG. 84 shows a display example on the display 15 at the time ofselecting content data to be moved in. Of the content data recorded tothe MS 4, only the content data that can be moved in are displayed onthe display 15.

FIG. 85 shows a display example on the display 15 during the move-inprocess. A display area 301 of the display 15 blinks a character string“Move in” indicative that a move-in process is being executed. A checkmarker 302 is displayed by the content data which have been moved in. Adisplay area 303 displays the information indicative of the progress ofthe move-in process (the number of tracks being moved in or alreadymoved in/the total number of tracks to be moved in).

Thus, the move-in process is performed. A process for importing contentdata from the MS 4 to the HDD 58 is performed in substantially the samemanner. The difference between move-in process and import process liesin the handling of the content data recorded to the HDD 58 by theseprocesses.

The audio server 1 may move out the content data recorded to the HDD 58by a move-in process to other MS 4 or PD 5 and check out these contentdata. However, although audio server 1 may check out the content datarecorded to the HDD 58 by an import process to other MS 4 or PD 5, butis disabled to move out these content data.

The following describes a restore process for compensating thediscontinuation of a move-out process or a move-in process due to poweroutage for example during the execution of these processes, withreference to FIG. 86. This restore process is started by the MS MW 89 assoon as the power supply is resumed.

In step S391, the MS MW 89 determines whether or not there is move-outlog information in the HDD 58. If the move-out log information is foundin the HDD 58, the procedure goes to step S392 to compensate thediscontinued execution of the move-out process.

In step S392, the MS MW 89 executes a move-out restore process. Thefollowing describes the move-out restore process with reference to theflowchart shown in FIG. 87.

In step S401, the MS MW 89 determines whether or not the content data ofthe HDD 58 are rightless or not. If the content data of the HDD 58 arefound rightless, the procedure goes to step S402. The content data ofthe HDD 58 being rightless indicates state 3 or state 4 in FIG. 79.

In step S402, the MS MW 89 deletes the content data from the HDD 58. Ifthe content data in the HD 58 are deleted in state 4, the state shiftsto state 5 in which the move-out process has been completed. If thecontent data are deleted from the HDD 58 in state 3, the state shifts tothe state in which the content data having the rightless data remain inthe MS 4.

At this moment, the user loses the content data, but the copyright ofthe content data is protected. The content data having the rightlessdata in the MS 4 may be deleted by the user by use of a general-purposefile editing application, so that no wasted data need be left in the MS4, which are the content data having rightless data.

Conversely, if a restore process is performed such that the content datahaving rightless data in the MS 4 are deleted to make the content datahaving rightless data remain in HDD 58, the wasted data which are thecontent data having rightless data remain recorded to the HDD 58.Because the content data having rightless data do not occur as a resultof normal operations, the dedicated audio server 1, one embodiment ofthe present invention, does not have a function for deleting the contentdata having rightless data as instructed by the user.

Therefore, to protect the copyright of content data and prevent theaudio server 1 from recording invalid data, it is desired to delete thecontent data from the HDD 58 as shown in step S402.

It should be noted that, if the content data in the 58 are determinednot rightless in step S401, step S402 is skipped. Namely, if the contentdata in the HDD 58 are not rightless, it indicates state 2 shown in FIG.79. At this moment, the content data having rightless data remain in theMS 4; however, as described above, the content data having rightlessdata in the MS 4 are deletable by the user by use of a general-purposefile editing application, so that there main no wasted data which arethe content data having rightless data in the MS 4.

In step S403, the MS MW 89 deletes the move-out log information from theHDD 58.

The procedure returns to FIG. 86. In step S393, the MS MW 89 determineswhether or not there is move-in log information in the HDD 58. If themove-in log information is found in the HDD 58, then the procedure goesto step S394 to compensate the discontinued move-in process.

In step S394, the MS MW 89 executes a move-in restore process. Thefollowing describes a move-in restore process with reference to theflowchart shown in FIG. 88.

In step S421, the MS MW 89 determines whether or not the content data inthe HDD 58 are rightless or not. If the content data in the HDD 58 arefound rightless, then the procedure goes to step S422. If the contentdata in the HDD 58 are rightless, it indicates state 12 or state 13shown in FIG. 83.

In step S422, the MS MW 89 deletes the existing content data from theHDD 58.

If the state is state 12, the deletion of the content data existing inthe HDD 58 causes the state to shift to state 11, which is before theexecution of move-in process. If the content data existing in the HDD 58are deleted in state 13, the content data having rightless data remainin the MS 4.

At this moment, the user loses the content data, but the copyright ofthe content data is protected. The content data having rightless data inthe MS 4 may be deleted by the user by use of a general-purpose fileediting application, so that there remain no wasted data which are thecontent data having rightless data in the MS 4.

Conversely, if a restore process is performed such that the content datahaving rightless data in the MS 4 are deleted to make the content datahaving rightless data remain in HDD 58, the wasted data which are thecontent data having rightless data remain recorded to the HDD 58.Because the content data having rightless data do not occur as a resultof normal operations, the dedicated audio server 1, one embodiment ofthe present invention, does not have a function for deleting the contentdata having rightless data as instructed by the user.

Therefore, to protect the copyright of content data and prevent theaudio server 1 from recording invalid data, it is desired to delete thecontent data from the HDD 58 as shown in step S422.

It should be noted that, if the content data in the 58 are determinednot rightless in step S421, step S422 is skipped. Namely, if the contentdata in the HDD 58 are not rightless, it indicates state 14 or state 15shown in FIG. 83. State 15 presents no problem because the move-inprocess has been completed therein. In state 14, however, the contentdata having rightless data remain in the MS 4; as described above, thecontent data having rightless data in the MS 4 are deletable by the userby use of a general-purpose file editing application, so that thereremain no wasted data which are the content data having rightless datain the MS 4.

In step S423, the MS MW 89 deletes the move-in log information from theHDD 58. Thus, the move-in restore process is performed. The procedurereturns to FIG. 86, upon which the restore process comes to an end.

It should be noted that, if the move-out log information is found notexisting in the HDD 58 in step S391 of FIG. 86, it may indicate that themove-out process has normally ended or the state is state 1 or state 2shown in FIG. 79. If the move-out process has normally ended or in state1 which is before the execution of the move-out process, the move-outrestore process may be skipped.

In state 2, too, the content data having rightless data remain in the MS4. However, because the content data having rightless data may bedeleted by the user by use of a general-purpose file editingapplication, no wasted data which are the content data having rightlessdata remain in the MS 4. Therefore, the process of step S392 is skipped.

If the move-in log information is determined not existing in the HDD 58in step S393, then it may indicate that the move-in process has normallyended or the state is state 11 shown in FIG. 83. If the move-in processhas normally ended and in state 11 which is the state before theexecution of a move process, the move-in restore process may be skipped,so that the process of step S394 is skipped.

Even if a restore process is discontinued due to power outage, theprocess is executed from step S391 again upon power resumption, thediscontinued process may be compensated. Thus, the restore process isperformed.

The following describes a process of checking out content data from theHDD 58 of the audio server 1 to the MS 4 with reference to FIGS. 89through 91.

The process of checking out content data from the HDD 58 denotes aprocess of temporarily creating a copy of the content data recorded tothe HDD 58 into the MS 4 for example and using this copy recorded to theMS 4. The check-out permission count of the content data is setbeforehand and this check-out permission count is decremented by 1 everytime a check-out process is executed. However, by executing a check-inprocess to be described later, the check-out permission count isincremented by 1.

The following describes a check-out process with reference to theflowchart shown in FIG. 89. It should be noted that a check-out processis controlled by the C IN/C OUT 87 of the HD MW 82.

This check-out process starts when the user displays the menu byoperating the menu/cancel button 21, selects “edit” by operating thecursor button 17, displays the edit menu by operating the enter button20, selects “check out” by operating the cursor button 17, and operatesthe enter button 20 with the MS 4 loaded in the MS slot 45.

In step S441, the C IN/C OUT 87 controls the HD DB 91 to get thecheck-out permission count (the number of times content data may stillbe checked out) for the content data corresponding to all tracksbelonging to a currently selected album. The check-out permission countof content data is recorded to the CN included in the AC (FIG. 42) ofeach corresponding track object (FIG. 43).

In step S442, the C IN/C OUT 87 requests the associated firmware todisplay, on the display 15, the information (music title, check-outpermission count, and so on) about the tracks of which check-outpermission count is 1 or more. FIG. 90 shows a display example on thedisplay 15. A display area 311 on the display 15 displays “HDD” as theinformation indicative of the sound source of check-out. A display area312 shows the check-out permission count of the content datacorresponding to each track.

In step S443, the C IN/C OUT 87 determines whether or not a track to bechecked out has been selected from among the displayed check-out enabledtracks by the user operating the cursor button 17 and the select button18. If a track to be checked out is found selected, the procedure goesto step S444.

In step S444, the C IN/C OUT 87 adds the selected track to the check-outlist. In step S445, the C IN/C OUT 87 decrements the check-outpermission count of the content data corresponding to the selected trackby 1. The procedure returns to step S441 to repeat the above-mentionedprocesses.

It should be noted that, if the track to be checked out is found notselected in step S443, the procedure goes to step S446. In step S446,the C IN/C OUT 87 discriminates whether or not the user issues aninstruction to execute check-out by operating the enter key 20 so thatthe list of tracks to be checked out is displayed and then operating theenter key 20. If the execution of check-out is found not instructed, theprocedure returns to step S441 to repeat the above-mentioned processes.

Next, in step S446, if the execution of check-out is found instructed,the procedure goes to step S447. In step S447, the C IN/C OUT 87 readsfrom the HDD 58 the content data corresponding to the track included inthe check-out list and requests the MS MW 89 to copy the retrievedcontent data into the MS 4. It should be noted that the copy of thecontent data includes the information for identifying the HDD 58, thecheck-out source.

In step S448, the C IN/C OUT 87 decrements the check-out permissioncount recorded to the CN of the AC of the track object corresponding tothe copied content data by 1 to update the value of the CN. Also, the CIN/C OUT 87 records the information for identifying the MS 4 as thecheck-out destination information to LCMLOG of the AC.

Although the description is omitted here, a flag indicative of playbackenabled or disabled (the validity or invalidity of the right) is used inthe same manner as the above-mentioned move-out process, therebycompensating power outage for example and preventing the unauthorizedcreation of copies from occurring.

FIG. 91 shows a display example on the display 15 during the executionof a check-out process. A display area 321 blinks a character string“Check out” indicative that a check-out process is being executed. Acheck mark 322 is displayed by each track that has been checked out. Apointer 323 is displayed by the track which is currently being checkedout. A display area 324 displays the information indicative of theprogress situation of the check-out process (the number of pieces ofcontent data being check out or already checked out/the total number ofpieces of content data included in the check-out list). Thus, thecheck-out process is performed.

The following describes a process of checking in the content datachecked out to the MS 4 into the HDD 58 with reference to FIGS. 92 and93.

A process of checking out the content data recorded to the MS 4 denotesa process in which the copy of the content data temporarily reproducedon the MS 4 is deleted from the HDD 58 and the check-out permissioncount of the HDD 58 is incremented by 1 to restore the check-outpermission count to the original value.

The following describes a check-in process with reference to theflowchart shown in FIG. 92. It should be noted that a check-in processis controlled by the C IN/C OUT 87 of the HD MW 82.

This check-in process starts when the user displays the menu byoperating the menu/cancel button 21, selects “Edit” by operating thecursor button 17, displays the edit menu by operating the enter button20, selects “Check in” by operating the cursor button 17, and operatesthe enter button 20 with the MS 4 loaded in the MS slot 45.

In step S451, the C IN/C OUT 87 requests the MS MW 89 to identify thecontent data which can be checked in (the content data checked out fromthe HDD 58 of the audio server 1) from among the data recorded to the MS4 and requests the associated firmware to display on the display 15 theinformation about the content data which can be checked in.

In step S452, the C IN/C OUT 87 displays on the display 15 theinformation (music title and so on) about the tracks which can bechecked in. FIG. 93 shows a display example on the display 15. A displayarea 331 on the display 15 displays “MS” as the information indicativeof the sound source of check-in. An arrow 332 displayed after theinformation such as the music title name of the content data denotesthat the content data can be checked in.

In step S452, the C IN/C OUT 87 determines whether or not the contentdata to be checked in have been selected from among the displayedcontent data which can be checked in by the user operating the cursorbutton 17 and the select button 18. If the content data to be checked inare found selected, the procedure goes to step S453.

In step S453, the C IN/C OUT 87 adds the selected content data to thecheck-in list. The procedure returns to step S451 to repeat theabove-mentioned processes.

If the content data to be checked in are found not selected in stepS452, then the procedure goes to step S454. In step S454, the C IN/C OUT87 discriminates whether or not an instruction to execute check-in isissued by the user operating the enter key 20 to display a list ofcontents data to be checked in and further operating the enter key 20.If the execution of check-in is found not instructed, the procedurereturns to step S451 to repeat the above-mentioned processes.

Next, if the execution of check-in is found instructed in step S454, theprocedure goes to step S455. In step S455, the C IN/C OUT 87 requeststhe MS MW 89 to delete the content data in the MS 4 included in thecheck-in list (or may only turn off the flag indicative whether playbackis enabled or disabled; namely, may only render the content datarightless).

In step S456, the C IN/C OUT 87 increments the check-out permissioncount recorded to the CN of the AC of the track object corresponding tothe original content data recorded to the HDD 58 by 1 to update thevalue of the CN. At the same time, the C IN/C OUT 87 deletes theinformation for identifying the MS 4 recorded as the check-outdestination information from the LCMLOG of the AC. Thus, the check-inprocess is performed.

The following describes, with reference to FIGS. 94 through 97, anexchange process for continuously executing a process of check-in thecontent data recorded to the MS 4 and a process of collectively checkingout a plurality of tracks belonging to an album including a track lastplayed back by the HD play function.

This exchange process starts when the user operates the exchange button22 with the MS 4 loaded in the MS slot 45.

In step S461, the C IN/C OUT 87 requests the MS MW 89 to identify thecontent data which can be checked in from among the data recorded to theMS 4. In step S462, the C IN/C OUT 87, in cooperation with the MS MW 89,checks in, piece by piece, the content data recorded to the MS 4 whichcan be checked in, in the same manner as the above-mentioned check-inprocess described with reference to FIG. 92.

FIG. 95 shows a display example on the display 15 during the executionof the process of step S462. A display area 381 on the display 15displays “MS” as the information indicative of the sound source ofcheck-in. A display area 382 blinks a character string “Now Check in”indicative that check-in is being executed. An “X” marker 383 displayedbefore the information such as music title name of content dataindicates that the content data concerned are disabled for check-in. Acheck marker 384 indicates that the content data concerned have alreadybeen checked in. A pointer 385 indicates that the check-in of thecontent data concerned is being executed.

In step S463, the C IN/C OUT 87 determines whether or not the contentdata enabled for check-in in the MS 4 have all been checked in. If thecontent data enabled for check-in in the MS 4 are found not all checkedin, then the procedure returns to step S462 to check in next contentdata. Then, in step S463, if the content data in the MS 4 enabled forcheck-in are found all checked in, the procedure goes to step S464.

In step S464, the C IN/C OUT 87, in cooperation with the HD DB 91,determines an album of which tracks are all checked out together. To bemore specific, for example, the HD DB 91 identifies the track playedback last on the basis of the last access date (FIG. 42) of each trackobject recorded to the object recording area 122 to determine the albumto which the identified track belongs as a check-out album.

In step S465, the C IN/C OUT 87 selects one track (namely, content data)from the check-out album. In step S466, the C IN/C OUT 87 determineswhether or not the selected content data are enabled for check-out. Ifthe selected content data are found enabled for check-out, the proceduregoes to step S467.

In step S467, the C IN/C OUT 87 requests the MS MW 89 to determinewhether or not the MS 4 has enough capacity for checking out theselected content data. If the MS 4 is found having an enough capacityfor checking out the selected content data, the procedure goes to stepS468.

In step S468, the C IN/C OUT 87 checks out the selected content data inthe same manner as the check-out process described with reference toFIG. 89.

FIG. 96 shows a display example on the display 15 during the executionof the process of step S468. A display area 391 on the display 15 shows“HDD” as the information indicative of the sound source of check-out. Adisplay area 392 blinks a character string “Now Check out” indicativethat check-out is being executed. An “X” marker displayed before theinformation such as music title name of content data indicates that thecontent data concerned are disabled for check-out. A check markerindicates that the content data concerned have already been checked out.

In step S469, the C IN/C OUT 87 determines whether or not all tracks(namely, content data) included in the check-out album have beenselected in step S465. If all content data are found not selected instep S465, the procedure returns to step S465 to repeat theabove-mentioned processes. If all content data are found selected instep S465, this exchange process comes to an end.

It should be noted that, if the selected content data are found notenabled for check-out in step S466, then steps S467 and S468 areskipped. If the MS 4 is found not having enough capacity for checkingout the selected content data in step S467, step S468 is skipped.

FIG. 97 shows a display example on the display 15 immediately after thecompletion of an exchange process. A display area 401 on the display 15shows a character string “COMPLETE” indicative of the completion of anexchange process.

As described, the user may only operate the exchange button 22 toautomatically execute the check-in process for checking in from MS 4 tothe HDD 58 and the check-out process for checking out from the HDD 58 tothe MS 4. Thus, the exchange process is performed.

It should be noted that the above-mentioned move-out process, move-inprocess, import process, check-out process, and check-in process may beexecuted not only between the HDD 58 and the MS 4 but also between theHDD 58 and the PD 5 connected to the connector 43.

FIG. 98 shows an exemplary configuration of the hardware of the PD 5. AnLSI (Large Scale Integration) 410 for implementing the PD 5 incorporatesa CPU 411 for controlling the entire PD 5. The CPU 411 is connected to aROM 412, a RAM 413, a DMA controller 414, a DSP (Digital SignalProcessor) 415, a buffer 416, an LCD interface (I/F) 417, a serialinterface (I/F) 418, and interfaces 419 and 420 via a bus 421.

The ROM 412 stores the programs for realizing various functions of thePD 5, device ID and encryption key and the like. The RAM 413 temporarilystores predetermined data and programs when the CPU 411 executes variousprocesses. The DMA controller 414 controls the data transfer with a USBcontroller 424 via the buffer 416, a flash memory 426, and the serialinterface 418. The DSP 415 decodes the content data recorded to theflash memory 426 for example. The DSP 415 has a DES engine toencrypt/decrypt content data by use of the encryption key. The buffer416 temporarily buffers the data of which transfer is controlled by theDMA controller 417.

The LCD interface 417 is followed by an LCD driver 422 and an LCD 423.The serial interface 418 is followed by the USB controller 424 and a USBconnector 425. The USB controller 424 controls the data communicationwith the audio server 1 connected via the USB connector 425. The flashmemory 426 connected via interface 419 stores the content data moved outfor example from the audio server 1 and additional information such asmusic titles. The interface 420 is followed by a DAC 427 and anamplifier (AMP) 428. A power supply section 429 supplies power to theLSI 410.

The audio data obtained by a decoding process by the DSP 415 areoutputted to a headphone for example via the interface 420, the DAC 427,and the amplifier (AMP) 428.

The move-out process and so on between the HDD 58 and the MS 4 and themove-out process and so on between the HDD 58 and the PD 5 aresubstantially the same, so that the following describes only thedifferences between them.

The content data to be recorded to the MS 4 are encrypted by use of thesame encryption key as that for the encryption of the content datastored in the HDD 58 of the audio server 1. Therefore, between the HDD58 and the MS 4, the encrypted content data can be moved out as it iswithout being decrypted.

On the contrary, the content data to be recorded to the PD 5 areencrypted by use of an encryption key which is different from theencryption key for encrypting the content data stored in the HDD 58 ofthe audio server 1. Therefore, as described with reference to FIG. 56,between the HDD 58 and the PD 5, the content data recorded to the HDD 58are decrypted and then encrypted again by use of a different encryptionkey for the PD 5 and the resultant content data are moved out.

Thus, the move-out process, move-in process, import process, check-outprocess, and check-in process are executed between the HDD 58 and the PD5.

The following describes a store function and a restore function of theaudio server 1 with reference to FIGS. 99 through 107.

The store function is a function for temporarily storing, where therecording capacity of the MS 4 is running short because of presence ofdata (for example, a still picture file or a voice file) which cannot beplayed back by the audio server 1 other than contents data recordedalready in the MS 4, the data recorded already in the MS 4 other thanthe contents data as a single archive file which includes files of thesame type recorded simultaneously into the HDD 58.

The restore function denotes the function for restoring thecorresponding directory and its files into the MS 4 by use of thearchive file generated by the store function on the HDD 58.

FIG. 99 shows the types of directories and data files which are possiblyrecorded to the MS 4.

File MEMSTICK.ind indicates that the recording medium to which a fileconcerned is recorded is the Memory Stick. Directory DCIM is a directorystoring still picture files generated by a digital still camera forexample. Directory VOICE is a directory for storing voice filesgenerated by an IC recorder for example. Directory HIFI is a directoryfor storing the content data attached with copyright information checkedout or moved out from the audio server 1 for example. Directory CONTROLis a directory for storing control information files. Directory TEL is adirectory for storing telephone and facsimile information files.Directory OPEN-R is a directory for storing entertainment robotinformation files. Directory POSITION is a directory for storingpositional information files. Directory PALM is a directory for storingPALM OS data files. Directory MP3 is a directory for storing MP3 files.Directory MSxxxxxx is a directory for storing vendor-unique informationfiles (“xxxxxx” is information for identifying the vendor).

FIG. 100 shows the recording positions of archive files which aregenerated, by the store function, under the directory structure of theobject recording area 122 in the HDD 58. On the layer on which folderobjects 217 are arranged, an MS data object 501 is arranged. On thelayer below the MS data object 501, an MS store/restore object 502 isarranged. The archive files (in FIG. 100, MS data #1.DCIM, MS data#2.VOICE, and MS data #3.DCIM) are recorded on the layer below the MSstore/restore object 502.

It should be noted that the name of archive file such as “MS data #1”may be set by the user in an arbitrary manner.

The following describes a store process by the HD MW 82 for implementingthe store function with reference to the flowchart shown in FIG. 101.This store process starts when the user selects the MS 4 as sound sourceby repetitively pressing the function button 12, selects “Edit” byoperating the cursor button 17 after pressing the menu/cancel button 21,presses the enter button 20, selects “Store (MS→HDD)” by operating thecursor button 17, and then presses the enter button 20.

In step S501, the HD MW 82 requests the MS MW 89 to search thedirectories recorded to the MS 4 for a directory to be stored, namely, adirectory other than directory HIFI, computes the capacity of theretrieved directory, and displays the computed capacity on the display15.

FIG. 102 shows a display example on the display 15 when the MS 4 isselected as sound source. Display areas 511 and 512 show characterstrings “MS” and “Memory Stick” indicative of sound sources. A displaymarker 513 indicates a still picture file storage directory; in thisexample, its capacity is 8 MB. A display marker 514 indicates a voicefile storage directory; in this example, its capacity is 1 MB.

Returning to FIG. 101, in step S502, the HD MW 82 accepts the useroperation for selecting the directory to be stored and waits until theuser performs a select operation. FIG. 103 shows an display example onthe display 15 in which a list of directories which can be stored isdisplayed. A display area 521 shows the information that the list ofdirectories which can be stored is displayed. A display area 522 showsthat there is a still picture file storage directory which can be storedand its capacity is 8 MB. A display area 524 shows that there is a voicefile storage directory which can be stored and its capacity is 1 MB. Acursor 524 points the still picture file storage directory or the voicefile storage directory in accordance with the operation of the cursorbutton 17.

Returning to FIG. 101, in step 502, if a user operation for selecting adirectory to be stored is performed, the procedure goes to step S503. Instep 503, the HD MW 82 requests the MS MW 89 to read all files belongingto the directory to be stored and records them as one archive file intothe layer below the MS store/restore object 502 of the object recordingarea 122 of the HDD 58. In step S504, the HD MW 82 records the originaldirectory (for example, directory DCIM) and the archive file name (forexample, “2001/08/11”) to the recorded archive file by relating theoriginal directory and the archive file name.

It should be noted that the archive file name may be set by the user inan arbitrary manner; however, if no file name is set, the date of thestore process concerned is automatically set as the archive file namesuch as “2001/08/11”.

FIG. 104 shows a display example in the display 15 when an archive filebeing generated. A display area 531 shows the information that the stillpicture file storage directory of the MS 4 is stored in the HDD 58. Adisplay area 532 shows the file name (in this example, “2001/08/11”) ofthe generated archive file. A display area 533 shows a variable-lengthbar 534 which extends in proportion to the progress of the storeprocessing concerned. A display area 535 blinks a character string“Store” indicative that a store process is being executed.

Returning to FIG. 101, in step 505, the HD MW 82 requests the MS MW 89to delete, from the MS 4, the directory in the MS 4 with the archivefile generated in the HDD 58. Thus, the store process is performed.

It should be noted that the retrieved directory which can be stored maybe automatically selected for executing the subsequent processes ratherthan waiting for the user operation for selecting the directory to bestored as the process in step 502.

As described, a store process allows the searching of the directoriesand files recorded to the MS 4 for directories which can be stored. Astore process also allows the selecting and storing of a directory inwhich the files generated by particular electronic equipment are stored.In addition, a store process prevents any ill-intentioned user who triesto copy the content data stored in the HIFI file in an unauthorizedmanner from using this store function because the HIFI directory inwhich files having copyright information in the MS 4 are stored is notprocessed by this store function.

The following describes a restore process for restoring, on the MS 4, adirectory equivalent to an archive file stored in the HDD 58 withreference to the flowchart shown in FIG. 105.

This restore process starts when the user selects the HDD 58 as soundsource by repetitively pressing the function button 12, selects “Edit”by operating the cursor button 17 after pressing the menu/cancel button21, presses the enter button 20, selects “Restore (MS→HDD”) by operatingthe cursor button 17, and then pressing the enter button 20.

In step 501, the HD MW 82 displays, on the display 15, the list ofarchive files belonging to the layer below the MS store/restore object502 of the object recording area 122 of the HDD 58.

FIG. 106 shows a display example on the display 15 for displaying thelist of archive files. A display area 541 shows a character string “HDD”indicative of sound source. A display area 542 shows a character string“Restore List”. A display area 543 shows the information about thearchive files which can be restored (file type marker, file name, anddata capacity). A cursor 544 points the still picture file storagedirectory or the voice file storage directory in accordance with theoperation of the cursor button 17.

Returning to FIG. 105, in step S512, the HD MW 82 accepts a useroperation for selecting an archive file to be restored in step S502 andwaits until the user performs the select operation. To be more specific,the HD MW 82 waits until the user selects an archive file by moving thecursor 544 up or down by operating the cursor button 17 and presses theenter button 20 to establish this selection. When the user performsthese operations, the procedure goes to step S513.

FIG. 107 shows a display example on the display 15 when the originaldirectory and its files are being restored on the basis of the archivefile. A display area 551 shows information “Restore (HDD→MS)” indicativethat the still picture file storage directory is restored from the HDD58 to the MS 4. A display area 552 shows the file name (in this example,“2000/08/11”) of the restored archive file. A display area 553 shows avariable-length bar 554 which extends in proportion to the progress ofthe restore process concerned. A display area 555 blinks a characterstring “Restore” indicative that the restore process is being executed.

Returning to FIG. 105, in step 513, the HD MW 82 requests the MS MW 89to restore the original directory and all its files into the MS 4 on thebasis of the archive file selected to be restored. In step S514, the HDMW 82 deletes the selected archive file from the layer below the MSstore/restore object 502 in the object recording area 122 of the HDD 58.Thus, the restore process is performed.

It should be noted that the subsequent processes may executed byautomatically selecting the archive file to be restored rather thanwaiting for the user to select the archive file to be restored as theprocess in step 512.

FIG. 108 shows an exemplary configuration of the flash ROM 52. The flashROM 52 stores a boot program which will be described later.

The flash ROM 52 has three storage areas, first through third storageareas, in which the firmware shown in FIG. 7 is stored on a so-calledversion basis. Namely, in this example, firmware of three generations ofversions may be stored.

A marker 1 indicative of the version of the firmware to be stored in thefirst storage area, a marker 2 indicative of the version of the firmwareto be stored in the second storage area, and a marker 3 indicative ofthe version of the firmware to be stored in the third storage area areincluded in the boot program.

It should be noted that, although details will be described later, eachmarker is incremented by 1 every time the firmware is upgraded inversion. If no firmware is stored in the corresponding area, each makerhas a value indicative of “INVALID”.

The following describes a processing procedure for upgrading firmware inversion (rewriting a program) with reference to the flowchart shown inFIG. 109.

It should be noted that, this firmware version upgrading process isexecuted by the firmware specified by the boot program which will bedescribed later when the user performs a predetermined operation on theaudio server 1. For example, if the firmware to be upgraded in versionand the firmware of a later version are stored in a CD-ROM, the CD MW 88executes this process; if these firmware programs are stored in the MS4, the MS MW 89 executes this process. In this example, this versionupgrading process is executed by the CD MW 88.

In step S531, the CD MW 88 determines an area in which the upgradedfirmware is stored.

To be more specific, one “INVALID” marker of the marker 2 and on of theflash ROM 52 (the marker 2 and the marker 3 in the example of FIG. 108)is detected and the storage area pointed by this marker provides thearea for storing the upgraded firmware. If no “INVALID” marker exists inthe marker 2 and on, the minimum marker is detected and the area pointedby this marker provides the area for storing the upgraded firmware.

In this example, the storage area pointed by the minimum marker storesthe firmware of the least recent version.

In step S532, the CD MW 88 gets the firmware of the most recent versionfrom the CD-ROM loaded in the CD-ROM drive 57. It should be noted that,in addition to the CD-ROM, the firmware of the most recent version mayalso be obtained from the MS 4 or the electronic equipment whichperforms data communication via the Ethernet controller/connector 67.

In step S533, the CD MW 88 supplies the firmware obtained in step S532to the encoder/decoder 59 for decryption and, in this example,re-encryption by use of the encryption key stored in the flash ROM 52 isperformed.

In step S534, the CD MW 88 writes the firmware re-encrypted in step S533to the storage area determined in step S531.

In step S535, the maximum marker is detected from the marker 2 and on(except for “INVALID” marker). In step S536, the value obtained byadding 1 to the maximum marker provides the marker corresponding to thestorage area in which the firmware was stored in step S534. Then, thisupgrading process comes to an end.

As described, only by performing a predetermined operation by the useron the audio server 1, the version of firmware may be upgraded.

The following describes a processing procedure in the boot program withreference to the flowchart shown in FIG. 110. It should be noted thatthis boot program is executed immediately after the power is suppliedfrom the power supply section 65 to each component of the system (uponexecution of a power-on sequence).

In step S541, the boot program executes a predetermined initializingprocess such as register initialization for example.

In step S542, the boot program determines whether or not all of themarker 2 and on (the marker 2 and the marker 3) in the flash ROM 52 are“INVALID”. If all these markers are not “INVALID”, the procedure goes tostep S543.

In step S543, the maximum marker m which is not “INVALID” is detectedfrom the marker 2 and on. In step S544, the boot program supplies thefirmware stored in the storage area pointed by the marker m to theencoder/decoder 59 for decryption. In step S545, the boot program writesthe decrypted firmware to the SDRAM 53.

If the marker 2 and on are all found “INVALID” in step S542, then theprocedure goes to step S547, in which the boot program determineswhether or not the marker 1 is “INVALID”. If the marker 1 is found not“INVALID”, the procedure goes to step S548.

In step S548, the boot program supplies the firmware in the storage areapointed by the marker 1 to the encoder/decoder 59 for decryption. Instep S549, the boot program writes the decrypted firmware to the SDRAM53.

When the firmware is written to the SDRAM 53 in step S545 or S549, theprocedure goes to step S546, in which the boot program instructs theexecution of the firmware written to the SDRAM 53. Consequently, thefirmware developed in the SDRAM 53 is executed.

If the marker 1 is found “INVALID” in step S547, namely, if none of thestorage areas stores the firmware and all markers are “INVALID”, thenthe procedure goes to step S550, in which error is determined.

If the firmware is executed in step S546 or if an error is determined instep S550, then the process comes to an end.

It should be noted that, in the above-mentioned example, only threestorage areas for storing firmware are arranged in the flash ROM 52; thenumber of storage areas for storing the firmware is not limited to threeas long as it is more than one. If there are two storage areas, themarker of the storage area in which the firmware is stored may be set to“INVALID” and, after storing the firmware in that storage area, set to“VALID” (to be correct, a value not INVALID) This prevents the firmwareunder rewriting from being developed into the SDRAM 53 for execution.

In the above-mentioned example, the firmware is upgraded in version. Itwill be apparent that the present invention is also applicable to aconfiguration in which other programs are upgraded in version. Thepresent invention is also applicable to a configuration in which programforms are changed (for example, programs for the Japanese language andthe English language).

The above-mentioned sequences of processes may be executed not only bydedicated equipment such as the audio server 1 but also by installingthe firmware as shown in FIG. 7 on a general-purpose personal computerfor example and executing the installed firmware.

This firmware is constituted not only by package media storing firmwaresuch as the magnetic disk (including a floppy disk), the optical disk(including CD-ROM (Compact Disk-Read Only Memory) and a DVD (DigitalVersatile Disk)), and the magneto-optical disk (including MD (MiniDisc), and the semiconductor memory which are distributed to users toprovide programs independently of the general-purpose computer, but alsoby a ROM and a hard disk storing firmware to be provided to users asinstalled in the computer.

It should be noted that, in the present specification, the steps fordescribing the program (firmware) include not only the processingoperations to be executed sequentially in time but also the processingoperations to be executed in parallel or discretely.

INDUSTRIAL APPLICABILITY

As described above, according to the present invention, it is possibleto automatically perform a processing to temporarily exchange data in apredetermined format.

1. An information processing apparatus comprising: a first informationstorage medium having a control program for controlling the entireapparatus, a load program for reading said control program and loadingsaid control program into another information storage medium, anexecution instruction program for instructing the execution of theloaded program, update information indicative of an update situation ofan area in which programs are stored, a read program for reading aprogram from an external information storage medium, and a write programfor writing said program read by said read program into said programstoring area; a second information storage medium for storing theprogram loaded by said load program; and a controller for performingcontrol such that said load program loads, when power is turned on, apart of said program into said second information storage medium inaccordance with update information stored in said first informationstorage medium, said execution instruction program executes said loadedcontrol program, said read program loaded in said second informationstorage medium reads a program from an external information storagemedium in response to a user request during the execution of saidcontrol program, and said write program loaded in said secondinformation storage medium writes said program read by said read programinto said first information storage medium.
 2. The informationprocessing apparatus according to claim 1, wherein said firstinformation storage medium has a first area and a second area, saidfirst area having at least said load program for reading a programstored in said second area and loading this program into said secondinformation storage medium, said execution instruction program, andupdate information indicative of an update situation of said second areaand said second area having at least said read program, said writeprogram, and said control program.
 3. The information processingapparatus according to claim 2, wherein said controller, when power isturned on, performs control such that said update information stored insaid first area of said first information storage medium for most recentupdate information is searched, said load program loads the programcorresponding to the searched area into said second information storagemedium, and said execution instruction program executes said loadedcontrol program.
 4. The information processing apparatus according toclaim 3, wherein said controller, in response to a user request,searches the update information stored in said first information storagemedium for the oldest update information or update informationindicative that the area is still free, reads a program from an externalinformation storage medium as executed by said read program loaded insaid second information storage medium, writes the program as executedby said write program loaded in said second information storage mediuminto a predetermined area, corresponding to said retrieved updateinformation, in said first information storage medium, and rewrites saidupdate information corresponding to said predetermined area to mostrecent update information.
 5. The information processing apparatusaccording to claim 2, wherein said first area has at least a first readprogram for reading an encrypted program from an external informationstorage medium and instructing the decryption thereof, said load programfor reading an encrypted program in said second area from said firstinformation storage medium, instructing the decryption thereof, andloading the decrypted program in said second information storage medium,said execution instruction program, and update information indicative ofupdate situations of all areas subsequent to said second area, and saidsecond area has at least a second read program for reading an encryptedprogram from an external information storage medium and instructing thedecryption thereof, said write program for encrypting again said programread and decrypted by said second read program and writing the encryptedprogram to said second area, and an encrypted control program forcontrolling the entire apparatus.
 6. The information processingapparatus according to claim 5, wherein, said controller, in response toa user request, searches the update information in said firstinformation storage medium for the oldest update information or updateinformation indicative that the area is still free, reads an encryptedprogram from an external information storage medium and instructs thedecryption thereof as executed by said read program loaded in saidsecond information storage medium encrypts again the decrypted programand writes the encrypted program to a predetermined area correspondingto said retrieved update information, in said first information storagemedium as executed by said write program loaded in said secondinformation storage medium, and rewrites said update informationcorresponding to said predetermined area to most recent updateinformation.
 7. An information processing method for an informationprocessing apparatus comprising a first information storage mediumhaving a control program for controlling the entire apparatus, a loadprogram for reading said control program and loading said controlprogram into another information storage medium, an executioninstruction program for instructing the execution of the loaded program,update information indicative of an update situation of an area in whichprograms are stored, a read program for reading a program from anexternal information storage medium, and a write program for writingsaid program read by said read program into said program storing areaand a second information storage medium for storing the program loadedby said load program, said information processing method comprising thesteps of: when power is turned on, loading, by said load program, a partof said program into said second information storage medium inaccordance with update information stored in said first informationstorage medium, executing the loaded control program by said executioninstruction program, and in response to a user request during theexecution of said control program, reading a program from an externalinformation storage medium as executed by the read program loaded insaid second information storage medium, and writing said program read bysaid read program to said first information storage medium as executedby said write program loaded in said second information storage medium.8. A storage medium storing a program for controlling an informationprocessing apparatus comprising a first information storage mediumhaving a control program for controlling the entire apparatus, a loadprogram for reading said control program and loading said controlprogram into another information storage medium, an executioninstruction program for instructing the execution of the loaded program,update information indicative of an update situation of an area in whichprograms are stored, a read program for reading a program from anexternal information storage medium, and a write program for writingsaid program read by said read program into said program storing areaand a second information storage medium for storing the program loadedby said load program, said program comprising the steps of: when poweris turned on, loading, by said load program, a part of said program intosaid second information storage medium in accordance with updateinformation stored in said first information storage medium, executingthe loaded control program by said execution instruction program, and inresponse to a user request during the execution of said control program,reading a program from an external information storage medium asexecuted by the read program loaded in said second information storagemedium, and writing said program read by said read program to said firstinformation storage medium as executed by said write program loaded insaid second information storage medium.